标签: classcastexception

在java中获取ClassCastException

嗨,我得到以下异常

线程"main"中的异常java.lang.ClassCastException:javax.mail.util.SharedByteArrayInputStream无法强制转换为javax.mail.Multipart

我在Eclipse IDE中没有得到任何编译异常,但是当我尝试构建项目时,我得到了这个异常.

在构建项目之后,我通过java -jar运行项目,因此它不满足if(内容实例的Multipart)条件,但是当我从Eclipse IDE运行时它工作正常.任何指针都会对我有很大帮助

从eclipse IDE我得到的是megssage.getContent()为javax.mail.internet.MimeMultipart@1dc0e7a但是当使用jar文件运行时我得到的内容为javax.mail.util.SharedByteArrayInputStream@2f0d54

请你告诉我他们之间有什么区别.

修改后的代码是:

 InputStream inStream = null;
    if(!message.getContentType().contains("text/plain")){
        Object content = message.getContent();          
        if (message.isMimeType("multipart/*")) {  
            //message.isMimeType("multipart/*")||
            Multipart multipart = (Multipart) content;
            for (int j = 0; j < multipart.getCount(); j++) {
                BodyPart bodyPart = multipart.getBodyPart(j);
                inStream = bodyPart.getInputStream();
                fileName=bodyPart.getFileName();
                } 
        }
        else{
        System.out.println("content not instance of multipart");    
        }`enter code here`  
Run Code Online (Sandbox Code Playgroud)

请任何人帮助我解决这个问题..

提前致谢...

java exception classcastexception

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

java.lang.ClassCastException:org.bson.types.ObjectId无法转换为com.mongodb.DBObject

我正在尝试将Morphia用于一个项目,但是在保存实体时遇到了一些麻烦。我发现实体定义有问题,因此尝试了他们网站上提供的定义,并抛出了此异常。我检查了mongo,一切似乎都很好。正在创建集合,并且似乎有记录。

我开始进行一个简单的JUnit测试,但它不会超越datastore.save(e)

package com.wtf.data;

import com.google.code.morphia.Datastore;
import com.google.code.morphia.Morphia;
import com.google.code.morphia.annotations.Entity;
import com.google.code.morphia.annotations.Id;
import com.google.code.morphia.emul.org.bson.types.ObjectId;
import com.mongodb.Mongo;
import org.junit.Test;

import java.net.UnknownHostException;

public class MorphiaTest {
    @Entity
    class MyEntity {
        @Id
        ObjectId id;
        String name;
    }

    @Test
    public void save() {
        Mongo mongo = null;
        try {
            mongo = new Mongo("127.0.0.1", 27017);
        } catch (UnknownHostException e) {
            e.printStackTrace();
        }
        Morphia morphia = new Morphia();
        morphia.map(MyEntity.class);
        Datastore datastore = morphia.createDatastore(mongo, "MorphiaTest");
        datastore.ensureIndexes();

        MyEntity e = new MyEntity();
        datastore.save(e);
    }
}
Run Code Online (Sandbox Code Playgroud)

java.lang.RuntimeException:java.lang.ClassCastException:org.bson.types.ObjectId无法在com.google.code.morphia.mapping.EmbeddedMapper.fromDBObject(EmbeddedMapper.java:149)处转换为com.mongodb.DBObject …

java classcastexception morphia

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

java.lang.ClassCastException:[Ljava.lang.Object; 与[Ljava.lang.String;不兼容;

我试图从linkedhashset中检索随机元素.下面是我的代码,但它每次都给我例外.

private static void generateRandomUserId(Set<String> userIdsSet) {

    Random rand = new Random(System.currentTimeMillis());
    String[] setArray = (String[]) userIdsSet.toArray();
    for (int i = 0; i < 10; ++i) {
        System.out.println(setArray[rand.nextInt(userIdsSet.size())]);
    }
}
Run Code Online (Sandbox Code Playgroud)

以下是我得到的例外 -

java.lang.ClassCastException: [Ljava.lang.Object; incompatible with [Ljava.lang.String;

谁可以帮我这个事?还有更好的方法吗?

java classcastexception

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

java.lang.RuntimeException: java.lang.ClassCastException: [B 不能转换为 java.lang.String

我在本地模式下运行风暴拓扑时遇到此错误。我有一个简单的程序来检查一个数是否为素数。我使用KafkaSpout作为源和风暴来处理它。Kafka 版本 2.10-0.8.2.1 风暴版本 0.9.4 zookeeper 3.4.6

下面是我检查素数的螺栓

public class PrimeNumberBolt extends BaseRichBolt 
{
    private static final long serialVersionUID = 1L;
    private OutputCollector collector;



    public void prepare( Map conf, TopologyContext context, OutputCollector collector ) 
    {
        this.collector = collector;
    }

    public void execute( Tuple tuple ) 
    {
        //System.out.println(tuple.getFields());
        //System.out.println(tuple.getString(0));
        String num = tuple.getString(0);
        //int number = tuple.getInteger( 0 );
        int number = Integer.parseInt(num);
        //System.out.println("IN Primenumber bolt = "+number);

        if( isPrime( number) )
        {  
            System.out.println( number );

        }
        collector.ack( tuple …
Run Code Online (Sandbox Code Playgroud)

java multithreading classcastexception runtimeexception apache-storm

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

Java.swing.ComboBox无法在Button classException上强制转换

由于某种原因,我不知道为什么我的ComboBox不能在按钮上的情况.请帮忙:

码:

import java.awt.GridBagLayout;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.*;


public class LocalBank implements ActionListener {

  JFrame frame;
  JPanel contentPane;
  JLabel label1;
  JLabel label2;
  JLabel label3;
  JTextField accNumber;
  JTextField withdraw;
  JTextField text3;
  JButton  avgButton;
  JLabel average;
  JComboBox plantNames;
  JTextField firstname;
  JTextField lastname;
  JTextField beggining;
  JButton submit;
  JLabel accNumLabel;
  JLabel withdawLabel;
  JLabel firstnameLabel;
  JLabel lastnameLabel;
  JLabel begginingLabel;

  public LocalBank() {
    // TODO Auto-generated constructor stub
    frame = new JFrame("Semiseter");


    contentPane = new JPanel();
    contentPane.setLayout(new BoxLayout(contentPane,BoxLayout.PAGE_AXIS));
    contentPane.setBorder(BorderFactory.createEmptyBorder
      (20, 20, 20, …
Run Code Online (Sandbox Code Playgroud)

java swing classcastexception

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

putParcelableArrayListExtra(ArrayList&lt;Uri&gt;) 抛出 ArrayList 无法转换为 android.os.Parcelable

我想添加多个图像作为电子邮件的附件。因此,我正在尝试将 a 添加java.util.ArrayList到电子邮件中Intent。该列表包含android.net.Uri元素。但它抛出一个ClassCastException

java.lang.ClassCastException: java.util.ArrayList cannot be cast to android.os.Parcelable
 at android.os.Bundle.getParcelable(Bundle.java:792)
 at android.content.Intent.getParcelableExtra(Intent.java:5377)
 at android.content.Intent.migrateExtraStreamToClipData(Intent.java:8144)
 at android.content.Intent.migrateExtraStreamToClipData(Intent.java:8124)
 at android.app.Instrumentation.execStartActivity(Instrumentation.java:1505)
 at android.app.Activity.startActivityForResult(Activity.java:3917)
 at android.app.Activity.startActivityForResult(Activity.java:3877)
 at android.support.v4.app.FragmentActivity.startActivityForResult(FragmentActivity.java:843)
 at android.app.Activity.startActivity(Activity.java:4200)
 at android.app.Activity.startActivity(Activity.java:4168)
 at de.zinnet.parkingoffenders.ParkingOffendersActivity.sendEmail(ParkingOffendersActivity.java:135)
 at de.zinnet.parkingoffenders.ParkingOffendersActivity.onOptionsItemSelected(ParkingOffendersActivity.java:103)
 at android.app.Activity.onMenuItemSelected(Activity.java:2908)
 at android.support.v4.app.FragmentActivity.onMenuItemSelected(FragmentActivity.java:404)
Run Code Online (Sandbox Code Playgroud)

我尝试了不同类型的Intent. 我调用的方法来创建Intent和启动Activity

private void sendEmail() {
    ParkingOffendersListFragment fragment = (ParkingOffendersListFragment) getFragmentManager().findFragmentById(R.id.fragment_list);
    Intent emailIntent = new Intent(Intent.ACTION_SEND);
    emailIntent.setType("text/plain");
    SharedPreferences settings = PreferenceManager.getDefaultSharedPreferences(getApplicationContext());

    String[] to = {settings.getString(getResources().getString(R.string.key_receiver_mail), "")};
    emailIntent .putExtra(Intent.EXTRA_EMAIL, …
Run Code Online (Sandbox Code Playgroud)

java android classcastexception android-intent

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

运行时或编译时的 java.lang.ClassCastException

我刚刚在 OCA-Book(Oracle 认证助理)中读到:

“一些转换异常可以在编译时被检测为错误,但其他只能在运行时检测到”。

现在我试图为这两种情况找到一个例子:编译时和运行时。

考虑以下类结构:

class A {}

class B extends A {}

class C extends B {}
Run Code Online (Sandbox Code Playgroud)

以下演员表

Object o = new C();
B b = (B) o;
Run Code Online (Sandbox Code Playgroud)

是正确的。所以代码将在没有ClassCastException.

演员阵容

Object o = new B();
C c = (C) o;
Run Code Online (Sandbox Code Playgroud)

是错的。对象o至少是类型B; 所以它可以被强制转换为Bor A

但是这可以在运行时或编译时检测到吗?我猜在编译时?!还是编译器只知道引用的类型,而不知道对象(内存中)本身的类型?如果这是真的,编译器无法在编译时决定转换是否正确。

感谢您的帮助!

java classcastexception

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

在Java中使用EntityManager返回计数本机查询的结果?

我有以下内容 SQL Query :

SELECT COUNT(*) FROM DOG where ID = 'SampleId';
Run Code Online (Sandbox Code Playgroud)

我试着写这个java:

public int returnCountOfDogTable(String id){

        String sql= "SELECT COUNT(*) FROM DOG WHERE ID =:id";
        Query query = persistence.entityManager().createNativeQuery(sql);
        query.setParameter("id", id);
        List<Integer> resultList = query.getResultList();
        int result = resultList.get(0);
        return result;
    }
Run Code Online (Sandbox Code Playgroud)

但是我得到了这个例外:

java.lang.ClassCastException: java.math.BigDecimal cannot be cast to java.lang.Integer
Run Code Online (Sandbox Code Playgroud)

我怎么解决这个问题?

java int integer entitymanager classcastexception

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

如何动态设置android的FrameLayout的宽度和高度?

我试图设置2个框架布局的宽度和高度,这是2个片段的容器,它们都是线性布局的子代。

但是,每当我使用

frameLayout.setLayoutParams(new FrameLayout.LayoutParams(100,100);
Run Code Online (Sandbox Code Playgroud)

它导致类强制转换异常

java.lang.ClassCastException:android.widget.FrameLayout $ LayoutParams无法转换为android.widget.LinearLayout $ LayoutParams

android classcastexception android-linearlayout android-fragments android-framelayout

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

android.app.Application 无法转换为我的应用程序

当应用程序从起点(启动活动、接收器)无法转换到我的应用程序时,我的崩溃率很少。

我的启动活动:

    override fun onCreate(savedInstanceState: Bundle?) {
        (application as MyApp)
        ...
    }
Run Code Online (Sandbox Code Playgroud)

我的应用程序扩展了 MultiDexApplication:

public class MyApp extends MultiDexApplication {
...
Run Code Online (Sandbox Code Playgroud)

崩溃日志:

Caused by: java.lang.ClassCastException: android.app.Application cannot be cast to com.my.myapp.MyApp
    at com.my.myapp.prelogin.presentation.LaunchActivity.onCreate(LaunchActivity.kt:59)
    at android.app.Activity.performCreate(Activity.java:6904)
    at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1136)
    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3266)
    at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3415)
    at android.app.ActivityThread.access$1100(ActivityThread.java:229)
    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1821)
    at android.os.Handler.dispatchMessage(Handler.java:102)
    at android.os.Looper.loop(Looper.java:148)
    at android.app.ActivityThread.main(ActivityThread.java:7325)
    at java.lang.reflect.Method.invoke(Method.java)
    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1230)
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1120)
Run Code Online (Sandbox Code Playgroud)

我花了很多时间寻找这个问题,但找不到解决方案。我认为这是 android sdk 的问题。

ps 我的清单文件上有名称标签

android classcastexception

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