【死磕 java原子类之终结篇】教程文章相关的互联网学习教程文章

java-传递子类的构造器参数时出现“无法解析匹配的构造器”错误【代码】

我有以下课程:public abstract class ParentClass {public ParentClass(){throw new RuntimeException("An ID must be specified.");}public ParentClass(String id){this(id, DEFUALT_ARG_VALUE);}public ParentClass(String id, int anotherArg){this.id = id;//stuff with anotherArg}public abstract void doInstanceStuff(); }public class ChildClass extends ParentClass {@Overridepublic void doInstanceStuff(){//....}...

使用JAXB映射包含超类型和子类型的Java集合【代码】

我正在尝试用JAXB生成这样的东西:<person><firstName>Foo</firstName><lastName>Bar</lastName><identities><green id="greenId"><some_elements....</green><blue id="blueId"/></identities>< identity>的子元素一切都源于一个普通的超级阶级. 在Java中它是这样的:@XmlRootElement(name = "person") public class Person {public String firstName; public String lastName;@XmlElementWrapper(name = "identities")public Set...

java – 转换扩展相同原始类的子类【代码】

如何在java中强制转换两个扩展类?class B extends Object{}class C extends Object{}B b = new B();C c = (C)b;//Cannot cast from B to C解决方法:你不能.考虑稍微重命名:class Ford extends Car {} class Chevrolet extends Car {}Ford ford = new Ford();Chevrolet chevrolet = (Chevrolet) ford;然而,两者都是汽车,所以你可以说Car car = ford;但不仅仅是那个.

java – 为什么我不能将父类分配给子类类型的变量?【代码】

为什么子类的引用变量不能指向父对象?即Child obj = new Parent();但是我们可以反之亦然请回答内存视图(堆)解决方法:没有理由与记忆有关.它更简单.子类可以通过添加新方法来扩展其超类的行为.虽然没有给出,但超类具有其子类的所有方法.请看以下示例:public class Parent {public void parentMethod() {} }public class Child extends Parent {public void childMethod() {} }现在让我们考虑如果您可以将Parent的实例分配给Child类...

java – 非可序列化父类的Serializable子类【代码】

我正在使用android / java中的Location子类序列化打砖块 位置不可序列化.我有一个名为FALocation的第一个子类,它没有任何实例变量.我已声明它可序列化. 然后我有一个名为Waypoint的第二个类看起来像这样:public class Waypoint extends FALocation implements Serializable {/*** */private static final long serialVersionUID = 1L;/* Class variables *******************************************************/private static...

java – 创建子类的实例是否会自动创建其超类对象?【代码】

如果我创建一个子类的对象,那么还将创建从继承子类的超类对象吗?如果没有,那么如何通过创建Thread类的子类(在多线程中)调用Thread类构造函数并创建一个Thread对象?解决方法:子类的实例是超类的实例.只创建了一个对象,但作为该创建的一部分,构造函数调用一直链接到java.lang.Object.例如:public class Superclass {// Note: I wouldn't normally use public variables.// It's just for the sake of the example.public int supe...

java – 在什么方面子类型与使用中的子类不同?【代码】

当通过扩展或实现链接类时,建立子类型.亚型也用于泛型. 如何区分子类型和子类?解决方法:在Java中,子类化是一种子类型. Java允许子类型化的方式有很多种: >当A类延伸B时,A是B的子类型,因为B b = new A(…);没关系.>当接口A扩展B时,A是B的子类型,因为B b = new A(){…}是可以的.>当A类扩展B时,A []是B []的子类型,因为B [] b = new A [0]是正常的.>当A类实现B时,A是B的子类型,因为B b = new A(…)是可以的. 听起来你想要一种方法来...

java – 超类中的受保护方法在不同包中的子类中是否可见?【代码】

参见英文答案 > What is the difference between public, protected, package-private and private in Java? 25个这看起来很傻,但我真的很困惑.请看下面的代码:package com.one; public class SuperClass {protected void fun() {System.out.println("base fun");} } ---- package com.two; import com.one.SuperClass; public class SubClass extends SuperClass{public void foo() {SuperCl...

Java中的子类化异常:何时不是自定义消息“足够好”?

这是最佳实践问题. 我目前正在使用旧的Java代码.我看到很多Exception的子类只覆盖了构造函数.我不确定是否有任何像这样的子类化Exception的实际用法.我认为只是调用Exception构造函数并传入消息将同样有效,并且不会有很多子类.守则是责任.解决方法:子类化的关键在于您的代码可以区分不同类型的故障并以不同方式对待它们.如果您只是更改消息,那么人类可以在日志中区分它们,但这就是全部. 如果您看到的异常实际上并没有被区别对待,但...

尝试使用父类方法时Java调用子类方法【代码】

如果我有两个班,A和B,public class A {public int test() {return 1;} }public class B extends A{public int test() {return 2;} }如果我这样做:A a1 = new B(),则a1.test()根据需要返回2而不是1.这只是Java的一个怪癖,还是有这种行为的原因?解决方法:不,这是正确的(这是由于多态性).所有方法调用都是对象操作,而不是引用类型. 这里你的对象是B类,所以将调用B类的测试方法.

java – 如何为类型的子类实现GWT编辑器?【代码】

假设我有一个像这样的对象层次结构: 帐户>网站>供应 账户是一个实际的公司,一个网站是他们拥有的建筑物,而一个供应是ElecSupply或GasSupply.供应从未实例化,理论上可能是一个抽象的阶级. 我使用Objectify进行持久化,并且有一个页面显示每个站点的供应列表,无论它们是ElecSupply还是GasSupply. 现在我正在实现GWT Editor Framework并且遇到了这个多态实体的问题.如何为这样的对象实现编辑器和子编辑器集?@Entity public class Sup...

java – 使用泛型返回对象子类【代码】

使用抽象类,我想定义一个为子类返回“this”的方法:public abstract class Foo {...public <T extends Foo> T eat(String eatCake) {...return this;} } public class CakeEater extends Foo {}我希望能够做到这样的事情:CakeEater phil = new CakeEater(); phil.eat("wacky cake").eat("chocolate cake").eat("banana bread");可以说香蕉面包会抛出IllegalArgumentException并显示消息“Not a cake!”解决方法: public abstra...

java – 检查对象是否是类的实例(但不是其子类的实例)【代码】

对于这个例子:public class Foo{}public class Bar extends Foo{}....void myMethod(Foo qux){if (checkInstance(qux,Foo.class)){....} }如何检查qux是否是Foo的实例(但不是foo的子类的实例)?那是: > checkInstance(qux,Foo.class)= true> checkInstance(qux,Bar.class)= false 这个检查有像instanceof这样的语句吗?或者我应该使用qux.getClass().equals(Foo.class)解决方法:如果你必须这样做,唯一的方法是你建议的getClass()...

java – 如何限制仅对子类的受保护方法访问【代码】

我们如何将任何受保护方法的访问限制为仅在任何包中的子类而不是同一包中的类. 如果任何不是子类并且在同一个包中的类也必须抛出类似“受保护的方法”的异常. 编辑:有没有办法检查调用类名实例,然后我们可以使用instanceof进行验证.解决方法:简单:从包中删除所有其他类,只留下您的基类. 这意味着可以访问您的类的唯一类来自另一个包. 如果另一个库复制了您的包名,您可以轻松检查调用者的包并断言它与您的包不同:if (getClass()....

带有子类参数的Java getMethod【代码】

我正在编写一个使用反射来动态查找和调用方法的库.只给出一个对象,一个方法名和一个参数列表,我需要调用给定的方法,就好像方法调用是在代码中显式编写的一样. 我一直在使用以下方法,在大多数情况下都可以使用:static void callMethod(Object receiver, String methodName, Object[] params) {Class<?>[] paramTypes = new Class<?>[params.length];for (int i = 0; i < param.length; i++) {paramTypes[i] = params[i].getClass()...