小编kav*_*mre的帖子

为什么String使用+运算符连接null并使用concate()方法抛出NullPointerException

这是我的班级,我连接两个字符串.串连接具有null使用+运算执行顺利,但将引发NullPointerExceptionconcate()方法.

public class Test {

    public static void main(String[] args) {

        String str="abc";
        String strNull=null;

        System.out.println(strNull+str);

        str.concat(strNull);
    }
}
Run Code Online (Sandbox Code Playgroud)

任何人都可以告诉我背后的原因吗?

java string

12
推荐指数
2
解决办法
1万
查看次数

有没有办法从java中的子类对象调用父类方法而不修改方法

我有父类和子类,都有一个方法m1具有相同的签名(覆盖),我可以在下面的场景中调用父类方法.我不想改变子类方法.

// Super class
public class Parent
{
    public void m1()
    {
        System.out.println("Parent method");
    }
}
// Sub class
public class Child extends Parent {
    @Override
    public void m1() {
        System.out.println("Child method");
    }
}
// User class
public class Kavi {
        public static void main(String[] args) {
            Parent p = new Child();
            p.m1();

        }
}
Run Code Online (Sandbox Code Playgroud)

我想调用父类m1方法.我知道我可以在子类方法中使用super来调用它的父方法.但是我无权更改子类的源代码.我必须从子类对象中调用它.请任何人帮忙!!! 是不是可能在java?

java oop inheritance

5
推荐指数
1
解决办法
1万
查看次数

调用方法时java.lang.StackOverflowError

我正在学习界面行为.我已经创建了一个接口及其实现类,而在调用方法m1()时,我得到了java.lang.StackOverflowError.我不知道为什么.任何人都可以告诉我这背后的正当理由!!!!!! 这是代码:

public interface Employee {
     String name="Kavi Temre";
}

public class Kavi implements Employee{
    Employee e= new Kavi();
    public static void main(String[] args) {

        Kavi kt=new Kavi();
        kt.m1();
    }

    void m1()
    {
        System.out.println(Employee.name);
        //System.out.println(e.name);
    }
}
Run Code Online (Sandbox Code Playgroud)

两个sysout都给出了同样的错误:请告诉我这里到底发生了什么?

控制台输出:

Exception in thread "main" java.lang.StackOverflowError
    at Kavi.<init>(Kavi.java:2)
    at Kavi.<init>(Kavi.java:2)
    at Kavi.<init>(Kavi.java:2)
    at Kavi.<init>(Kavi.java:2)
    at Kavi.<init>(Kavi.java:2)
    at Kavi.<init>(Kavi.java:2)
    at Kavi.<init>(Kavi.java:2)
    .....
Run Code Online (Sandbox Code Playgroud)

java interface

3
推荐指数
1
解决办法
944
查看次数

JVM是否在内部实例化抽象类的对象?

我有一个抽象类及其具体的子类,当我创建子类的对象时,它会自动调用超级构造函数.JVM是否在内部创建抽象类的对象?

public abstract class MyAbstractClass {

    public MyAbstractClass() {
        System.out.println("abstract default constructor");
    }

}
public class ConcreteClass extends MyAbstractClass{

    public static void main(String[] args) {
        new ConcreteClass();
    }

}
Run Code Online (Sandbox Code Playgroud)

然后如何在JVM中没有对象的构造函数存在?(如果是抽象类)

构造函数在创建对象后执行,然后不创建抽象类的对象如何执行默认构造函数?(这在Java Doc中提到)

java abstract-class object-construction

3
推荐指数
1
解决办法
1154
查看次数

我可以在我的应用程序中使用不同的文件名而不是hibernate.cfg.xml

我可以在我的应用程序中使用不同的hibernate文件名而不是hibernate.cfg.xml,我将Hibernate用作ORM框架吗?

configuration = new Configuration();
sessionFactory = configuration.configure("MyFileName.cfg.xml")
        .buildSessionFactory();
Run Code Online (Sandbox Code Playgroud)

我想在我的应用程序中使用不同的文件名?

hibernate

3
推荐指数
1
解决办法
2778
查看次数

为什么Java设计者限制在静态上下文中使用非静态变量?

我知道无法从静态上下文中引用非静态变量.我想知道为什么Java设计师做出了这个限制.

我已经检查了Stack Overflow,并且有很多类似的问题和答案,但我想知道确切的原因.

java static language-design

1
推荐指数
1
解决办法
62
查看次数

如何编写一个方法,它接受0或1的int参数并给出输出1或0

我想编写一个方法,它接受0或1的int args并给出输出1或0.意味着如果我将输入设为0则应返回1,如果输入为1则应返回0.但问题是我无法使用否则,三元运算符或任何集合.

方法应该像这样:

public int myMethod(int i)
{
    return j; // if i is 0 then j should be 1 and vice versa.
}
Run Code Online (Sandbox Code Playgroud)

java logic

1
推荐指数
1
解决办法
93
查看次数