Tag: 构造函数

构造函数是否可能超越?

我所知道的是,编译器在字节码中编写了一个默认的无参数构造函数。 但是如果我们自己编写,那么构造函数会自动调用。 这种现象是构造函数的重写吗?

在java中需要默认构造函数?

除了使用如下的reflection检查之外 ,有没有办法要求类具有默认(无参数)构造函数? (以下可行,但它很笨拙,反思很慢) boolean valid = false; for(Constructor c : TParse.class.getConstructors()) { if(c.getParameterTypes().length == 0) { valid = true; break; } } if(!valid) throw new MissingDefaultConstructorException(…);

我的代码在创建构造函数方面有什么问题?

我正在尝试创建一个Person类,其构造函数使用给定的参数启动实例变量,但是当通过主类创建新的person对象时,代码无法编译,因为Person构造函数不需要参数,但是我在构造函数中指定了四个。 我正在使用NetBeans 7.2.1 ..这是我的代码: public class Person { private String fName; private String mName; private String lName; private String dob; public void Person(String first, String middle, String last, String dateOfBirth){ fName = first; mName = middle; lName = last; dob = dateOfBirth; } public String getFirstName(){ return fName; } public String getMiddleName(){ return mName; } […]

具有大参数或Java bean getter / setter方法的Java构造函数

我无法确定哪种方法更适合创建具有大量字段(10+)(所有必需的)getter / setter的构造函数方法的对象。 构造函数至少要强制设置所有字段。 Java Bean更容易看到正在设置哪些变量而不是巨大的列表。 构建器模式似乎不合适,因为所有字段都是必需的,构建器要求您将所有必需参数放在构建器构造函数中。 感谢:D

变量参数构造函数_may_ conflict,但编译

我有两个编译器编译得很好,但我希望Java抱怨模糊的可能性。 public Foo(int id, Bar bar, String name, String description){ } public Foo(int id, Bar bar, String… values){ } 是什么赋予了?

如何在Java中有条件地调用不同的构造函数?

让我们说有人给你一个类, Super ,带有以下构造函数: public class Super { public Super(); public Super(int arg); public Super(String arg); public Super(int[] arg); } 而且假设你要创建一个Derived子类。 你如何有条件地在Super调用构造函数? 换句话说,做出像这样的工作的“正确”方法是什么? public class Derived extends Super { public Derived(int arg) { if (some_condition_1) super(); else if (some_condition_2) super(“Hi!”); else if (some_condition_3) super(new int[] { 5 }); else super(arg); } }

Java错误:构造函数未定义

在Java中,为什么我会收到此错误: Error: The constructor WeightIn() is undefined Java代码: public class WeightIn{ private double weight; private double height; public WeightIn (double weightIn, double heightIn){ weight = weightIn; height = heightIn; } public void setWeight(double weightIn){ weight = weightIn; } public void setHeight(double heightIn){ height = heightIn; } } public class WeightInApp{ public static void main (String […]

如何在Java中最好地解释和使用空构造函数?

我一直在自学Java。 我理解定义类的范围,但仍然没有得到空构造函数用法的概念。 通常我们应该传递构造函数的参数来构建实例对象。 但是,我经常看到构造函数的空参数。 例如: class Person { String name; int age; public Person(); public Person(String name, int age){ this.name = name; this.age = age; } } 我研究并阅读了一个使用“鱼”类来解释的例子。 所以,这就是我到目前为止所理解的:在定义类时,我们首先定义一个对象的属性,然后我们创建一个构造函数,用于使用方法构建对象。 空构造函数构建GENERIC对象,带有参数的构造函数构建具有更多特定信息的对象。 让我们说上面的例子,如果我使用空构造函数创建一个实例对象: Person p1 = new Person(); – 它仍会创建一个对象,但没有任何属性? 那么,究竟空构造函数用于什么? 我在很多示例代码中看到了它。 它非常有用/常见吗? 感谢您的回答!

类构造函数中大量参数的优雅替代

例如,我有一个构建GUI的类,一个处理GUI所有事件的类,以及包含受GUI对象(主要是滑块)影响的所有对象的主类,以及GUI类和事件类。 现在,事件类的构造函数具有GUI类和GUI所更改的每个对象作为参数。 这些都是相当多的对象,所以我现在拥有的论据数量大约是8,而且还在增长。 对我的问题有一个更优雅的解决方案,30个参数根本感觉不对吗? ps,我宁愿不组合类,因为这三个都非常大,并且会使一切都变得不那么可读。

错误:找不到合适的构造函数

我是java新手,我正在尝试为Minecraft制作一个mod,但我无法弄清楚如何解决这个错误: src\minecraft\net\minecraft\src\ThreadConnectToServer.java:39: error: no suitabl e constructor found for Packet2ClientProtocol(int,Minecraft,String,String,int) GuiConnecting.getNetClientHandler(this.connectingGui).addToSendQueue (new Packet2ClientProtocol(51, GuiConnecting.func_74254_c(this.connectingGui), t his.Username, this.ip, this.port)); ^ constructor Packet2ClientProtocol.Packet2ClientProtocol(int,String,int) is n ot applicable (actual and formal argument lists differ in length) constructor Packet2ClientProtocol.Packet2ClientProtocol() is not applicable (actual and formal argument lists differ in length) 1 error 这是我的代码: package net.minecraft.src; import java.net.ConnectException; import java.net.UnknownHostException; […]