java.lang.ClassNotFoundException: [Ljava.lang.String解决办法

本文介绍了一种解决使用JDK6.0时出现的与java.lang.String类加载相关的问题的方法。该问题在升级到JDK6.0后出现,在虚拟机参数中加入-Dsun.lang.ClassLoader.allowArraySyntax=true可以解决这一问题。

原来jdk5.0的时候不会报这个错,用了jdk6.0就出现了这个错误,因为没有重载java.lang.String这个类

 

解决方法:

在vm缺省参数里添加-Dsun.lang.ClassLoader.allowArraySyntax=true

 

如图:

 

 

### 使用方法 #### 创建数组 使用 `newInstance` 方法创建指定元素类型、指定维度的数组。示例代码如下: ```java import java.lang.reflect.Array; public class CreateArrayExample { public static void main(String[] args) { // 创建一个长度为 6 的 int 类型数组 int[] ints = (int[]) Array.newInstance(int.class, 6); } } ``` #### 访问数组元素 使用 `getXxx` 方法获取数组元素,使用 `setXxx` 方法设置数组元素。示例代码如下: ```java import java.lang.reflect.Array; public class AccessArrayExample { public static void main(String[] args) { // 创建一个长度为 3 的 int 类型数组 int[] ints = (int[]) Array.newInstance(int.class, 3); // 设置数组元素 Array.set(ints, 0, 888); Array.set(ints, 1, 777); Array.set(ints, 2, 999); // 获取数组元素并输出 System.out.println("ints[0] = " + Array.get(ints, 0)); System.out.println("ints[1] = " + Array.get(ints, 1)); System.out.println("ints[2] = " + Array.get(ints, 2)); } } ``` #### 获取数组的 `Class` 对象 可以使用 `Class` 类的静态方法获取数组的 `Class` 对象。示例代码如下: ```java import java.lang.reflect.Array; public class GetArrayClassExample { public static void main(String[] args) throws ClassNotFoundException { // 获取 String 类型数组的 Class 对象 Class stringArrayClass = String[].class; // 获取原生 int 类型数组的 Class 对象 Class intClazz = Class.forName("[I"); // 获取原生 String 类型数组的 Class 对象 Class stringClazz = Class.forName("[Ljava.lang.String;"); } } ``` #### 获取数组的成员类型 使用 `Class.getComponentType()` 方法获取数组的成员类型。示例代码如下: ```java import java.lang.reflect.Array; public class GetArrayComponentTypeExample { public static void main(String[] args) { int[] ints = new int[5]; Class<?> componentType = ints.getClass().getComponentType(); System.out.println(componentType.getName()); // 输出 "int" } } ``` ### 特性 - **动态创建数组**:可以在运行时动态创建指定元素类型和维度的数组,而不必在编译时确定数组的大小和类型,提高了程序的灵活性[^3][^4]。 - **通用性**:可以处理各种类型的数组,包括基本数据类型和引用类型,提供了统一的操作接口[^3][^4]。 - **反射机制的一部分**:作为 Java 反射机制的一部分,可以与其他反射功能结合使用,实现更复杂的操作,如在运行时分析和操作数组[^3]。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值