这是我的班级,我连接两个字符串.串连接具有null
使用+运算执行顺利,但将引发NullPointerException
与concate()
方法.
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)
任何人都可以告诉我背后的原因吗?
我有父类和子类,都有一个方法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?
我正在学习界面行为.我已经创建了一个接口及其实现类,而在调用方法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) 我有一个抽象类及其具体的子类,当我创建子类的对象时,它会自动调用超级构造函数.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中提到)
我可以在我的应用程序中使用不同的hibernate文件名而不是hibernate.cfg.xml,我将Hibernate用作ORM框架吗?
configuration = new Configuration();
sessionFactory = configuration.configure("MyFileName.cfg.xml")
.buildSessionFactory();
Run Code Online (Sandbox Code Playgroud)
我想在我的应用程序中使用不同的文件名?
我知道无法从静态上下文中引用非静态变量.我想知道为什么Java设计师做出了这个限制.
我已经检查了Stack Overflow,并且有很多类似的问题和答案,但我想知道确切的原因.
我想编写一个方法,它接受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)