我想知道是否有一种方法可以动态创建对象,或者我应该说不使用Class对象及其属性。我正常做的就是这个。
ApiHelper apiHelper = new ApiHelper();
User user = new User();
user.Firstname = "FirstName";
apiHelper.send("", user);
我想在我的代码片段中完成此操作:
ApiHelper apiHelper = new ApiHelper();
apiHelper.send("", new { Firstname = "Firstname"});
send()的第二个参数的数据类型为Object,此Object稍后转换为json字符串。
这是一个c#示例,在java中是否有这个对应的?我有点认为,如果我在创建对象时使用第一种方法,我需要很多类才能符合我需要构建的对象,所以我希望如果我可以使用第二种方法在java中完成它。
答案 0 :(得分:4)
从技术上讲,这可能与Java有关。语法是这样的:
apiHelper.send("", new Object(){ String firstName = "Firstname"});
然而,这通常是无用的。你更有可能想要做的是创建一个接口/类来定义你想要的方法和字段,并传递一个实例。
示例:
class Data{
String firstname;
public Data(String firstname){
this.firstname=firstname;
}
}
答案 1 :(得分:2)
嗯,你真正需要的是一个以Firstname
作为参数的构造函数。
public User(String fName) {
Firstname = fName;
}
虽然,你的成员大写不是Java中的惯例,因为它在C#中;应该是
String firstname;
然后你会做......
apiHelper.send("", new User("Firstname"));
答案 2 :(得分:0)
如果你不能修改User
来添加一个构造函数,那么我将使用"双括号初始化,"您基本上可以在实例化该类的类中运行代码:
ApiHelper apiHelper = new ApiHelper();
apiHelper.send("", new User(){{
Firstname = "Firstname";
}});
然后在实例化后立即执行行Firstname = "Firstname";
。