我想AlertDialog用3个按钮写一个.如果不满足某个条件,我希望禁用中间的中性按钮.
码
int playerint = settings.getPlayerInt();
int monsterint = settings.getMonsterInt();
AlertDialog.Builder alertbox = new AlertDialog.Builder(this);
alertbox.setMessage("You have Encountered a Monster");
alertbox.setPositiveButton("Fight!",
new DialogInterface.OnClickListener() {
// do something when the button is clicked
public void onClick(DialogInterface arg0, int arg1) {
createMonster();
fight();
}
});
alertbox.setNeutralButton("Try to Outwit",
new DialogInterface.OnClickListener() {
// do something when the button is clicked
public void onClick(DialogInterface arg0, int arg1) {
// This should not be static
// createTrivia();
trivia();
}
});
// Return to …Run Code Online (Sandbox Code Playgroud) 更新 - 使问题更清楚.
在通过反射调用方法时获取ClassCastException的可能原因是什么?
在尝试通过反射调用方法时,我将以下stacktrace作为我的应用程序的一部分.
java.lang.IllegalArgumentException: java.lang.ClassCastException@21fea1fv
at sun.reflect.GeneratedMethodAccessor332.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at com.....
(remaining is my method stack trace)
Run Code Online (Sandbox Code Playgroud)
我尝试了一个示例类,并将不同类型的各种参数传递给它,但我总是得到一个这个例外.
java.lang.IllegalArgumentException: argument type mismatch
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
Run Code Online (Sandbox Code Playgroud)
更新 - 这是我为尝试重新创建异常而编写的示例代码
用于创建代理类的接口
package my.tests;
public interface ReflectionsInterface {
public abstract void doSomething();
}
Run Code Online (Sandbox Code Playgroud)
这是测试类
package my.tests;
import java.lang.reflect.InvocationHandler;
import java.lang.reflect.Method;
import java.lang.reflect.Proxy;
public class Reflections implements ReflectionsInterface {
public static void main(String[] args) {
Reflections reflections = new Reflections();
ReflectionsInterface reflectionsProxy = …Run Code Online (Sandbox Code Playgroud) 我有一个Service我试图绑定到我的主要Activity,但我收到了
java.lang.ClassCastException:android.os.BinderProxy无法强制转换为com.walintukai.rubix.ConnectionService $ LocalBinder.
我已在我的清单中声明了该服务.为什么会这样?
宣言宣言
<service android:name=".ConnectionService" />
Run Code Online (Sandbox Code Playgroud)
服务(简化代码)
public class ConnectionService extends Service {
static final String TAG = ConnectionService.class.getName();
private BluetoothAdapter mBtAdapter = null;
public BluetoothGatt mBluetoothGatt = null;
private ConnectionServiceEventListener mIRedBearServiceEventListener;
HashMap<String, BluetoothDevice> mDevices = null;
private BluetoothGattCharacteristic txCharc = null;
private final IBinder mBinder = new LocalBinder();
@Override
public IBinder onBind(Intent intent) {
return mBinder;
}
public class LocalBinder extends Binder {
public ConnectionService getService() {
return ConnectionService.this;
}
} …Run Code Online (Sandbox Code Playgroud) android classcastexception android-service android-service-binding
很抱歉,如果已经解释过,但我没有在网络中的任何地方找到类似的线程.
今天我在IDE中打开了一个项目类并看到了一个错误(红色下划线),尽管项目编译成功.
所以,代码是:
public interface DatasourceImplementation<T extends Entity> {
....
}
public interface Datasource<T extends Entity> {
....
}
public interface DsContext {
@Nullable
<T extends Datasource> T get(String name);
}
Run Code Online (Sandbox Code Playgroud)
现在我们将这种方法称为:
DatasourceImplementation dsImpl = getDsContext().get("dsName");
Run Code Online (Sandbox Code Playgroud)
Idea13给了我错误(不兼容的类型) - 我认为这是正确的.
Idea14在此处未显示任何错误.
JDK编译它没有错误 - 这很难过.
必须说,在我们的A接口的项目实现类中总是实现B接口(可能解释为什么Idea14说它没关系),但在我看来这不能证明这种行为是正确的 - 因为通常我可以创建实现A的类并且不会实现B.我想在我的代码中使用静态典型化,我不希望看到运行时类转换异常.
那么,谁在这里错了?
UPD.添加真实类的屏幕截图(不确定它会解释更多内容,它与我描述的相同)

Spark DataFrame包含Array [Double]类型的列.当我尝试在map()函数中将其返回时,它会抛出一个ClassCastException异常.以下Scala代码生成异常.
case class Dummy( x:Array[Double] )
val df = sqlContext.createDataFrame(Seq(Dummy(Array(1,2,3))))
val s = df.map( r => {
val arr:Array[Double] = r.getAs[Array[Double]]("x")
arr.sum
})
s.foreach(println)
Run Code Online (Sandbox Code Playgroud)
例外是
java.lang.ClassCastException: scala.collection.mutable.WrappedArray$ofRef cannot be cast to [D
at $iwC$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC$$anonfun$1.apply(<console>:24)
at $iwC$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC$$anonfun$1.apply(<console>:23)
at scala.collection.Iterator$$anon$11.next(Iterator.scala:328)
at scala.collection.Iterator$class.foreach(Iterator.scala:727)
at scala.collection.AbstractIterator.foreach(Iterator.scala:1157)
at org.apache.spark.rdd.RDD$$anonfun$foreach$1$$anonfun$apply$28.apply(RDD.scala:890)
at org.apache.spark.rdd.RDD$$anonfun$foreach$1$$anonfun$apply$28.apply(RDD.scala:890)
at org.apache.spark.SparkContext$$anonfun$runJob$5.apply(SparkContext.scala:1848)
at org.apache.spark.SparkContext$$anonfun$runJob$5.apply(SparkContext.scala:1848)
at org.apache.spark.scheduler.ResultTask.runTask(ResultTask.scala:66)
at org.apache.spark.scheduler.Task.run(Task.scala:88)
at org.apache.spark.executor.Executor$TaskRunner.run(Executor.scala:214)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at java.lang.Thread.run(Thread.java:745)
Run Code Online (Sandbox Code Playgroud)
Cam有人解释我为什么不起作用?我该怎么做呢?我使用Spark 1.5.1和scala 2.10.6
谢谢
arrays scala classcastexception apache-spark apache-spark-sql
当尝试将 record.value() 转换为 java 对象时,我在消费者中遇到了这个异常:
ClassCastException: class org.apache.avro.generic.GenericData$Record cannot be cast to class [...].PublicActivityRecord (org.apache.avro.generic.GenericData$Record and [...].PublicActivityRecord are in unnamed module of loader 'app')
Run Code Online (Sandbox Code Playgroud)
生产者发送 java 对象,它是一个名为 的用户定义类型,如下所示:PublicActivityRecord
ClassCastException: class org.apache.avro.generic.GenericData$Record cannot be cast to class [...].PublicActivityRecord (org.apache.avro.generic.GenericData$Record and [...].PublicActivityRecord are in unnamed module of loader 'app')
Run Code Online (Sandbox Code Playgroud)
此时我可以在调试模式下看到 的值ProducerRecord确实是类型PublicActivityRecord。
在注册表服务器上,我可以在日志中看到发送模式的生产者的 POST 请求:
Registering new schema: subject DEV-INF_9325_activityRecord_01-value, version null, id null, type null, schema size 7294 (io.confluent.kafka.schemaregistry.rest.resources.SubjectVersionsResource:262)
[2022-01-28 07:01:35,575] INFO 192.168.36.30 - - [28/janv./2022:06:01:34 …Run Code Online (Sandbox Code Playgroud) java classcastexception avro apache-kafka confluent-schema-registry
我正在使用 Eclipse 2022-06 和 Tomcat 10.0.10。
通常,当关闭 Eclipse 中运行的 Tomcat 时,我会得到
WARNUNG: Failed to clear soft references from ObjectStreamClass$Caches for web application [ROOT]
java.lang.ClassCastException: class java.io.ObjectStreamClass$Caches$1 cannot be cast to class java.util.Map (java.io.ObjectStreamClass$Caches$1 and java.util.Map are in module java.base of loader 'bootstrap')
at org.apache.catalina.loader.WebappClassLoaderBase.clearCache(WebappClassLoaderBase.java:2363)
Run Code Online (Sandbox Code Playgroud)
...
我发现了这个问题,但它并不真正适用:它是一个不同的类(映射而不是字符串),并且我找不到名为“SESSIONS.ser”的文件。我还已经从实际的 Web 服务部分中删除了所有内容(因此代码什么也不做)。我只是还没有开始删除所有可能自动加载的链接的 jar 文件。
有没有办法找出哪个类真正导致了问题?
顺便说一句,如果通过将 WAR 文件部署到 Eclipse 外部的 Tomcat 安装中,我无法重现日志中的错误。我不确定这是否意味着它没有出现。
使用eclipse和Android SDK,我使用Button和ProgressBar管理了一个简单的测试应用程序.所有运行良好,但我我以前不想要的进度移动的按钮,当进度已变得可见,所以只是为了测试我改变了他们在res /布局/ main.xml中文件中定义(它使用的顺序LinearLayout中).编译并运行我然后在下面的"final ProgressBar ..."行中获得ClassCastException.
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
/* 01-06 14:37:39.590: E/AndroidRuntime(863): java.lang.RuntimeException:
java.lang.ClassCastException: android.widget.Button cannot be cast to
android.widget.ProgressBar */
final ProgressBar progressbar = (ProgressBar) findViewById(R.id.progressBar1); /* here */
progressbar.setVisibility(ProgressBar.GONE);
final Button exebutton = (Button)findViewById(R.id.button1);
exebutton.setOnClickListener(new View.OnClickListener()
// etc...
Run Code Online (Sandbox Code Playgroud)
现在,我理解ClasCastException的含义和含义,我只是不明白为什么会出现.我不是试图将Button转换为ProgressBar.我不明白......
除少数设备外,我的应用程序工作得很好.在一台这样的设备上,我在我的一项活动中获得了致命的异常.错误是java.lang.ClassCastException:java.lang.String无法强制转换为android.text.Spannable ...... 在android.widget.TextView.setEnabled(TextView.java:1432)
堆栈跟踪
05-02 09:18:19.917: E/AndroidRuntime(20587): FATAL EXCEPTION: main
05-02 09:18:19.917: E/AndroidRuntime(20587): java.lang.ClassCastException: java.lang.String cannot be cast to android.text.Spannable
05-02 09:18:19.917: E/AndroidRuntime(20587): at android.widget.TextView.setEnabled(TextView.java:1432)
05-02 09:18:19.917: E/AndroidRuntime(20587): at com.myapp.android.menu.LoginFragment.checkIfAnyFieldIsEmpty(LoginFragment.java:512)
05-02 09:18:19.917: E/AndroidRuntime(20587): at com.myapp.android.menu.LoginFragment.onCreateView(LoginFragment.java:183)
05-02 09:18:19.917: E/AndroidRuntime(20587): at android.support.v4.app.Fragment.performCreateView(Fragment.java:1460)
05-02 09:18:19.917: E/AndroidRuntime(20587): at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:911)
05-02 09:18:19.917: E/AndroidRuntime(20587): at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1088)
05-02 09:18:19.917: E/AndroidRuntime(20587): at android.support.v4.app.BackStackRecord.run(BackStackRecord.java:682)
05-02 09:18:19.917: E/AndroidRuntime(20587): at android.support.v4.app.FragmentManagerImpl.execPendingActions(FragmentManager.java:1444)
05-02 09:18:19.917: E/AndroidRuntime(20587): at android.support.v4.app.FragmentManagerImpl$1.run(FragmentManager.java:429)
05-02 09:18:19.917: E/AndroidRuntime(20587): at android.os.Handler.handleCallback(Handler.java:615)
05-02 09:18:19.917: E/AndroidRuntime(20587): at android.os.Handler.dispatchMessage(Handler.java:92)
05-02 09:18:19.917: E/AndroidRuntime(20587): at …Run Code Online (Sandbox Code Playgroud) 我正在尝试实现Parcelable而不是Serializble,因为它应该更高效.从我的MainActivity我想将Message对象传递给另一个activity,我的类Message包含其他类.如果我越过这一个错误,我确信我会遇到更多的错误,但是现在当我尝试运行我的应用程序时,我得到了
这是我的Message-class:
import java.util.ArrayList;
import android.os.Parcel;
import android.os.Parcelable;
public class Message implements Parcelable {
int id;
int space_id;
String text;
String html;
String created_at;
int[] comments;
boolean is_liked;
int[] liked_by;
int[] starred_by;
boolean is_starred;
boolean is_followed;
int[] followed_by;
ArrayList<AttachmentsData> attachments;
String url;
int[] tags;
boolean is_system;
public User created_by;
public Permissions persmissions;
public Embed embed;
public Tokens[] tokens;
/** Parcelable **/
public Message(Parcel in) {
readFromParcel(in);
}
@Override
public int describeContents() {
return 0;
}
@Override
public void writeToParcel(Parcel dest, …Run Code Online (Sandbox Code Playgroud) android ×5
java ×5
arrays ×2
apache-kafka ×1
apache-spark ×1
avro ×1
crash ×1
generics ×1
java-7 ×1
parcelable ×1
reflection ×1
scala ×1
tomcat ×1