小编Anu*_*Dey的帖子

.class == getClass()测试失败

这是我编写的一个小代码,用于在运行时检查(它是否称为反射API?不确定)类,但是我没有得到预期的结果.这是代码:

public class Outer {
    public Outer(){
        System.out.println("Outer Class");
    }
    public class Inner {
        public Inner(){         
            System.out.println("Inner Class");
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

这里还有我编写的用于运行代码并测试它的主要功能......

public class ClassTest {

    public static void main(String[] args) {

        Outer outObj = new Outer();
        Outer.Inner inObj = outObj.new Inner();

        // Using Reflection
        Class objTyp = inObj.getClass();
        System.out.println(objTyp.getName());

        //Testing Reflection
        if(objTyp.getClass() == Outer.Inner.class){
            System.out.println("Match classes!");
        }else{
            System.out.println("Mismatch classes!");
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

测试失败,出现以下错误:

if(objTyp.getClass()== Outer.Inner.class){^其中CAP#1是一个新的类型变量:CAP#1从捕获中扩展Class?扩展了Class 1错误

请帮我纠正代码.我错过了什么?谢谢.

java reflection java.lang.class

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

合并排序代码抛出NullPointerException

我做了一个非常简单的合并排序实现,但我继续得到java.lang.NullPointerException.这是我的代码:

public class MergeSort {

    private int[] c;
    private int i = 0, j = 0, k = 0;

    public MergeSort(int[] a, int[] b){

        while( i < a.length && j < b.length){

            if(a[i] > b[j])
                c[k++] = b[j++];
            else
                c[k++] = a[i++];
        }

        while(i < a.length){
            c[k++] = a[i++];
        }

        while(j < b.length){
            c[k++] = b[j++];
        }

        i = 0;
        while(i < c.length){
            System.out.print(c[i++] + " ");
        }
    }

}
Run Code Online (Sandbox Code Playgroud)

我正在从主类调用构造函数,如下所示:

public class MainRun {


    public static void main(String[] args) …
Run Code Online (Sandbox Code Playgroud)

java arrays mergesort nullpointerexception

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

阿姆斯特朗号错误

这是我为Oracle PL/SQL Armstrong Number编写的代码

declare
num number;
sum number;
temp number;
val number;
begin
num:=&num;
temp:=num;
while temp<>0 loop
val:=trunc(temp mod 10);
sum:=sum +(val*val*val);
temp:=temp/10;
end loop;
if sum=num then
dbms_output.put_line('number is Armstrong');
else
dbms_output.put_line('number is not Armstrong');
end if;
end;
Run Code Online (Sandbox Code Playgroud)

我收到以下错误:

第11行的错误:ORA-06550:第11行第10列:PLS-00103:当遇到以下情况之一时遇到符号"+":(符号"("代替"+"继续.ORA-06550 :第11行,第24栏:PLS-00103:遇到下列其中一项时遇到符号";":*& - +/at mod余数rem || year day符号")"代替";" 接着说.ORA-06550:第14行,第7列:PLS-00103:当期待下列之一时遇到符号"=":(

我做错了什么?谢谢.

sql oracle plsql

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