小编Ham*_*fin的帖子

Java:编译时Object的隐式转换不起作用,但可以使用反射

给出以下代码:

import java.lang.reflect.Array;
import java.lang.reflect.Method;

public class Test {

  public static void test_function(int[] values) {
    System.out.println("Class of values : " + values.getClass());
    System.out.println(values[0]);
  }

  public static void main(String[] args) {

    Object a = Array.newInstance(int.class, 3);
    Array.set(a, 0, 5);

    Class a_class         = a.getClass();
    Class int_array_class = int[].class;

    System.out.println("Class of int[]  : " + int[].class); 
    System.out.println("Class of a      : " + a.getClass());
    System.out.println("int_array_class : " + int_array_class);
    System.out.println("a_class         : " + a_class);

    // These instructions will provoke a compile-time error
    // test_function(a); …
Run Code Online (Sandbox Code Playgroud)

java reflection casting compiler-errors object

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

标签 统计

casting ×1

compiler-errors ×1

java ×1

object ×1

reflection ×1