繁体   English   中英

如何在Java中声明嵌套数据对象?

[英]How to declare nested data object in java?

在Javascript中,我可以这样做:

 var Services = { Pandora : {name: "ziggy", password: "stardust"}, AppleMusic : {name: "steve", password: "jobs"}, SoundCloud : {name: "bedroom", password: "studio"} }; 

并使用对象表示法轻松访问数据成员

 console.log(Services.Pandora.name); console.log(Services.AppleMusic.name); console.log(Services.SoundCloud.password); 

现在,我试图使用Java声明相同的静态变量,这使我感到困惑。 我所见过的每一种讨论方式(嵌套类,映射,ArrayLists)似乎都令人费解,并且使用了大量代码,以至于我很难相信在Java中没有简单的方法可以做到这一点。 有人可以启发我吗?

后来....

我最终使用了一个枚举,如下所示:

 public enum Service { Batanga ("Batanga","Batanga","my_name","my_password",""), Calm ("Calm Radio","Calm Radio","my_name","my_password",""), ; private final String svcName; private final String svcFullName; private final String login; private final String pass; private final String url; Service(String svcName, String svcFullName, String login, String pass, String url) { this.svcName = svcName; this.svcFullName = svcFullName; this.login = login; this.pass = pass; this.url = url; } public String getSvcName() { return svcName; } public String getSvcFullName() { return svcFullName; } public String getLogin() { return login; } public String getPass(){ return pass; } public String getUrl() { return url; } } 

谢谢!

好吧,我想您会有一个Service类和一个Map ,它们都在服务名称上键入:

class Service {
    private String name, password;

    public Service(String name, String password) {
        this.name = name;
        this.password = password;
    }

    // getters, setters if you'd like
}

Map<String, Service> services = new HashMap<>();
services.put("pandora", new Service("ziggy", "stardust"));
// etc.

当然,鉴于JS的松散类型和Java的严格类型,两者之间会有一些明显的区别。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM