Tag: 构造函数

创建的对象的ID生成器

我需要一个创建对象的类,为每个创建的对象分配一个ID。 此ID通常是类的int属性。 我想每次创建一个Object时增加这个值(ID),然后从1开始分配给该对象。我觉得我需要一个静态int属性。 如何初始化此静态属性? 我应该创建一个单独的方法来增加在构造函数中调用的ID(作为ID生成器)吗? 一般来说,最有效和最精心设计的方式是什么?

Javainheritance – 构造函数

在为我的决赛学习期间,我在我正在学习的书中遇到了以下陈述。 考虑以下代码: class A { public A(int x) { } } class B extends A { public B(int x ) { } } 是否必须在类B(super(x))的构造函数中调用类A的构造函数。 该书指出它不是强制性的,因为它们具有确切数量和类型的参数。 但是当我在java编译器中尝试这个时,会抛出以下错误: A类中的构造函数A不能应用于给定类型; required:int found:无参数原因:实际和forms参数列表的长度不同

在构造函数抛出exception后可以调用finalize吗?

是否有任何关于是否使用finalize()清除对象的细节,如果该对象的构造函数是exception的话。 当调用这种方法时,出了名的不明确。 根据手册: Java编程语言不保证哪个线程将为任何给定对象调用finalize方法。 但是,可以保证,调用finalize时,调用finalize的线程不会持有任何用户可见的同步锁。 如果finalize方法抛出未捕获的exception,则忽略该exception并终止该对象的终止。 http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html#finalize%28%29 我无法以这种方式触发finalize方法。 有没有人知道它是不是被调用了,或者在某些情况下是在构造函数初始化对象后调用它(这是一个例外)。 我问这个是因为我有一个不能清理两次的物体。 我试图了解在抛出exception之前是否可以安全地清理,或者我必须为finalize()留下一个标记来有效地跳过并且什么都不做。

Java错误:默认构造函数无法处理exception类型FileNotFound Exception

我正在尝试从一个文件中读取输入到Java applet中以显示为Pac-man级别,但我需要使用类似于getLine()的东西…所以我搜索了类似的东西,这个是我找到的代码: File inFile = new File(“textfile.txt”); FileInputStream fstream = new FileInputStream(inFile);//ERROR // Get the object of DataInputStream DataInputStream in = new DataInputStream(fstream); BufferedReader br = new BufferedReader(new InputStreamReader(in)); 我标记为“ERROR”的行给出了一个错误,指出“默认构造函数无法处理由隐式超级构造函数抛出的exception类型FileNotFoundException。必须定义一个显式构造函数。” 我搜索过这个错误信息,但我发现的一切似乎与我的情况无关。

android活动类构造函数工作

在考虑android活动的情况时,第一种工作方法是onCreate正确吗? 假设我想将2个参数传递给android活动类,比如UserHome 。 为此我创建了活动类UserHome的构造UserHome并接受了params。 但是当我们调用一个活动时,我们没有初始化Activity类,我们只是创建了UserHome类的intent。 那么我们如何在不使用intent.putExtra(“keyName”, “somevalue”);情况下将params从另一个活动传递给该活动intent.putExtra(“keyName”, “somevalue”); 用法。 专家们请说明我们如何能够涵盖这样的情况。

在Java中_not_调用超类构造函数的任何方法?

如果我有课: class A { public A() { } } 和另一个 class B extends A { public B() { } } 有没有办法让BB() 不要打AA() ?

NullPointerException | enum构造函数中的`this`导致NPE

public class Test { public static void main(String[] args) { Platform1 p1=Platform1.FACEBOOK; //giving NullPointerException. Platform2 p2=Platform2.FACEBOOK; //NO NPE why? } } enum Platform1{ FACEBOOK,YOUTUBE,INSTAGRAM; Platform1(){ initialize(this); }; public void initialize(Platform1 platform){ switch (platform) { //platform is not constructed yet,so getting `NPE`. //ie. we doing something like -> switch (null) causing NPE.Fine! case FACEBOOK: System.out.println(“THIS IS […]

Java:Setter Getter和构造函数

我对使用getter / setter和构造函数感到有点困惑(参见下面的代码示例) public class ExampleClass { private int value = 0; public ExampleClass () { value = 0; } public ExampleClass (int i) { this.value = i; } public int getValue() { return value; } public void setValue(int val) { this.value = val; } public static void main(String[] args) { ExampleClass example = new […]

将最终变量传递给匿名类

在通过构造函数传递给匿名类的最终变量中 ,Jon Skeet提到变量通过自动生成的构造函数传递给匿名类实例。 在这种情况下,为什么我无法使用reflection看到构造函数: public static void main(String… args) throws InterruptedException { final int x = 100; new Thread() { public void run() { System.out.println(x); for (Constructor cons : this.getClass() .getDeclaredConstructors()) { StringBuilder str = new StringBuilder(); str.append(“constructor : “).append(cons.getName()) .append(“(“); for (Class param : cons.getParameterTypes()) { str.append(param.getSimpleName()).append(“, “); } if (str.charAt(str.length() – 1) == […]

为什么类的子类必须是静态的才能在类的构造函数中初始化子类?

所以,问题或多或少都像我写的那样。 我知道它可能根本不清楚,所以我举一个例子。 我有类Tree,其中有Node类,而Tree的空构造函数是: public class RBTree { private RBNode head; public RBTree(RBNode head,RBTree leftT,RBTree rightT){ this.head=head; this.head.leftT.head.father = head; this.head.rightT.head.father = head; } public RBTree(RBNode head){ this(head,new RBTree(),new RBTree()); } public RBTree(){ this(new RBNode(),null,null); } public class RBNode{ private int value; private boolean isBlack; private RBNode father; private RBTree leftT; private RBTree rightT; } } […]