遇到的错误java.lang.ClassCastException

package tpackage;

public class ArrayList<E> {

	private Object list[];
	private int sum=0;

	public ArrayList(){
		this(16);
	}
	public ArrayList(int capacity)
	{
		list = new Object[capacity];
	}

	public E[] toArray()     //将Object数组转型为 E[]
	{
		return (E[]) list;
	}
	public void add(String string) {
		list[sum++]="string";

	}

}

package tpackage;

public class test1 {

	public static void main(String[] args) {

		ArrayList<String> list = new ArrayList<>();

		list.add("One");
		list.add("Two");
		list.add("three");

		String[] strs=list.toArray();

	}

}

感觉可以的样子,创建Object数组 在转型为String[]

运行错误提示为

Exception in thread "main" java.lang.ClassCastException: [Ljava.lang.Object; cannot be cast to [Ljava.lang.String;

意思是转型错误 Object不能转型为Sting ; 因为创建的的确是Object 数组:

可以这样解决:

public E[] toArray()
	{
		E[] elements=null;
		if(sum>0)
		{
			elements=(E[])Array.newInstance(list[0].getClass(), sum);
			for (int  i=0;i<sum; i++) {
				elements[i]=(E)list[i];
			}
		}
		return elements;
	}

从第一的值取得对象的实际的Class 实例建立数组, 如果E 是Stirng  建立的数组也是Stirng[];

调用toArray()就不会有错误啦

遇到的错误java.lang.ClassCastException,布布扣,bubuko.com

时间: 2024-10-19 14:42:41

遇到的错误java.lang.ClassCastException的相关文章

错误 java.lang.ClassCastException: com.ylpw.sms.YZZYSenderUtil cannot be cast to ResourceBundle

出现错误: java.lang.ClassCastException: com.ylpw.sms.YZZYSenderUtil cannot be cast to ResourceBundle 百度搜索错误,没有结果.谷歌搜索:http://stackoverflow.com/questions/5694017/specify-java-localization-file 解决方法,修改了一行代码 prop = ResourceBundle.getBundle(this.getClass().g

Caused by: java.lang.ClassCastException: org.springframework.web.SpringServletContainerInitializer cannot be cast to javax.servlet.ServletContainerInitializer错误解决办法

严重: Failed to initialize end point associated with ProtocolHandler ["http-bio-8080"] java.net.BindException: Address already in use <null>:8080 at org.apache.tomcat.util.net.JIoEndpoint.bind(JIoEndpoint.java:407) at org.apache.tomcat.util.

java.lang.ClassCastException: java.lang.String cannot be cast to com.jy.hfims.domain 映射实体类型错误

今天在做 excel导出的时候,出现了一个问题"java.lang.ClassCastException: java.lang.String cannot be cast to com.domain.xxx": 公司用hibernate,查询时候可以用sql和hql,用什么一般看心情,第一次查询用的是select g.* from persion g ,site s where g.wz=s.dz(当然都是简写); 当get实体导出的 时候出现了" java.lang.Cla

安卓出现错误: java.lang.ClassCastException: android.widget.TextView cannot be cast to android.widget.EditText

Caused by: Java.lang.ClassCastException: Android.widget.TextView cannot be cast to android.widget.EditText 该种报错信息,检查代码确定无误后,若还是出现这种错误,则可通过以下这个办法进行解决: 点中该项目-->点击Project-->clean   清理下再重新运行该项目,然后就解决了

java.lang.ClassCastException: com.liuyang.annocation.UserAction cannot be cast to com.liuyang.annocation2.UserAction at com.liuyang.annocation2.App.test

java.lang.ClassCastException: com.liuyang.annocation.UserAction cannot be cast to com.liuyang.annocation2.UserAction at com.liuyang.annocation2.App.test(App.java:17) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.Native

关于数据库连接池使用代理报 java.lang.ClassCastException

用到动态代理时会发生这样的错误: java.lang.ClassCastException: $Proxy0 cannot be cast to java.sql.Connection 原因是数据库驱动版本的问题: 当用到: mysql-connector-java-5.0.8-bin.jar 则不会出报错: 但是,当用到: mysql-connector-java-5.1.7-bin.jar (5.1以上) 则会报 java.lang.ClassCastException: $Proxy0 c

java.lang.ClassCastException: java.lang.Integer cannot be cast to java.lang.String

1.错误描写叙述 java.lang.ClassCastException: java.lang.Integer cannot be cast to java.lang.String service.impl.ArrivalBillServiceImpl.exportBillExcel(BillServiceImpl.java:266) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.Na

java.lang.ClassCastException: java.util.ArrayList cannot be cast to java.util.Map

1.错误描述 java.lang.ClassCastException: java.util.ArrayList cannot be cast to java.util.Map at service.impl.BillServiceImpl.exportBillExcel(BillServiceImpl.java:336) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMet

java.lang.ClassCastException:fragment cannot be cast to android.support.v4.app.Fragment

已启动APP后台就报了这个错误! java.lang.ClassCastException:fragment cannot be cast to android.support.v4.app.Fragment Java.lang.classcastexception:片段不能被转换为android.support.v4.app.fragment 原因是因为在使用继承Fragment的时候 导错包了:import android.support.v4.Fragment; 正确的包:import a