如何在java中为公共静态最终类实例设置值
范例如何在java中为公共静态最终类实例设置值,java,class,static,final,Java,Class,Static,Final,范例 公共静态最终类MyClass{ 私人长id; 公共静态最终整数成员\u ID\u字段\u编号=2; 私人长启动日期; .... } //同时在另一节课上 Abc班{ ... 公开终审法院{ MyClass aaa=????//我想知道如何设置类值 .... } } 如何在另一个类中设置MyClass的值?我试着像这样做“初始化” 它只是给了我一个id不能解析符号的错误 我来自javascript背景,这就是为什么我会这样想。您知道如何使用公共静态最终类的部分/所有自定义默认值启动实例吗?
公共静态最终类MyClass{
私人长id;
公共静态最终整数成员\u ID\u字段\u编号=2;
私人长启动日期;
....
}
//同时在另一节课上
Abc班{
...
公开终审法院{
MyClass aaa=????//我想知道如何设置类值
....
}
}
如何在另一个类中设置MyClass
的值?我试着像这样做“初始化”
它只是给了我一个id不能解析符号的错误
我来自javascript背景,这就是为什么我会这样想。您知道如何使用
公共静态最终类的部分/所有自定义默认值启动实例吗?顺便说一句,如果背景故事有助于了解全貌,我这样做是为了测试一个特定类的方法,其中包括一个MyClass
的实例。这是一种模拟值的尝试,而不是必须重新创建整个ActionBean来测试一个方法。如果它有默认构造函数(没有任何参数的构造函数),则可以首先创建对象,而不提供字段值,并使用setter(如果存在)设置它,如下所示:
如果没有默认构造函数,则需要在对象创建期间提供所有参数,如下所示:
public final void aFunc {
MyClass aaa = new MyClass(1,2,3);
....
}
有多种方法可以创建对象实例并为字段赋值:
调用设置程序方法:
公共静态最终类MyClass{
私人长id;
公共无效集合id(长id){
this.id=id;
}
}
MyClass aaa=新的MyClass();
aaa.setId(123132);
使用带参数的构造函数:
公共静态最终类MyClass{
私人长id;
公共MyClass(长id){
this.id=id;
}
}
MyClass aaa=新的MyClass(123132);
使用公共字段。虽然不推荐,但这是JavaScript所做的:
公共静态最终类MyClass{
公共长id;
}
MyClass aaa=新的MyClass();
aaa.id=123132;
使用生成器:
公共静态最终类MyClass{
私人长id;
私有MyClass(长id){
this.id=id;
}
公共静态类生成器{
私人长id;
公共无效id(长id){
this.id=id;
}
公共MyClass构建(){
MyClass x=新的MyClass();
x、 id=this.id;
返回x;
}
}
}
MyClass aaa=新建MyClass.Builder()
.id(123132)
.build();
有两个选项可以用值填充字段。
一个选项是使用公共构造函数传递所有要更新的参数:
public static final class MyClass{
private long id_;
public static final int MEMBER_ID_FIELD_NUMBER = 2;
private long startDate_;
public MyClass(long id_, long startDate_) {
this.id_ = id_;
this.startDate_ = startDate_;
}
}
您可以将其用作以下命令:
public final void aFunc {
MyClass objectA = new MyClass(1L, 23214112213L);
}
public final void aFunc {
MyClass objectB = new MyClass();
objectB.setID(1L);
objectB.setStartDate(23214112213L);
}
第二个选项是使用setters:methodper字段来增加值:
public static final class MyClass{
private long id_;
public static final int MEMBER_ID_FIELD_NUMBER = 2;
private long startDate_;
public void setID(long id_) {
this.id_ = id_;
}
public void setStartDate(long startDate_) {
this.startDate_ = startDate_;
}
}
您可以将其用作以下命令:
public final void aFunc {
MyClass objectA = new MyClass(1L, 23214112213L);
}
public final void aFunc {
MyClass objectB = new MyClass();
objectB.setID(1L);
objectB.setStartDate(23214112213L);
}
但是你可以把它们结合起来。您可以使用构造函数和设置器
看到和
看
- 对于你的私人领域,我想你也需要getter
这些是你应该具备的基本知识的一部分。此外,请记住还有一些约定(命名等)id\ucode>是私有的(并且有一个奇怪的名称,imho),您不能从其他类访问它。MyClass
的职责是为其客户机提供一种更改id\ucode>值的方法(通过构造函数或方法)。您需要进一步了解java编程语言,因为它不同于javascript。不要期望javascript语言范例应用于java。