gpt4 book ai didi

java - 需要找到线程错误

转载 作者:行者123 更新时间:2023-12-01 19:22:06 25 4
gpt4 key购买 nike

我在下面放置了一个代码,我创建了一个本地线程并在最后一个右大括号处出现错误,任何人都可以帮我解决这个问题吗?

Thread dt = new Thread(this){
public void run()
{
Looper.prepare();
GetCurrentLocation loc = new GetCurrentLocation(RestaurantFinder.this);
loc.setLocParams();

int counter = 0;
String lat = GetCurrentLocation.getCurrentLatitude();
String lon = GetCurrentLocation.getCurrentLongitude();

while (lat == null && lon == null
&& counter <= 1000)
{
lat = GetCurrentLocation.getCurrentLatitude();
lon = GetCurrentLocation.getCurrentLongitude();
counter = counter + 1;
}

System.out.println("The Latitude are:" + lat);
System.out.println("The Longitude are:"+ lon);

if (lat == null && lon == null)
{
// another alert for location not found

AlertDialog.Builder builder1 = new AlertDialog.Builder(RestaurantFinder.this);
builder1.setTitle("Restaurant Finder");
builder1.setMessage("Unable to find the Current Location");
builder1.setPositiveButton("OK",new DialogInterface.OnClickListener()
{

@Override
public void onClick(DialogInterface dialog,int which)
{


dialog.dismiss();

}
});

AlertDialog dialog1 = builder1.create();
dialog1.show();

// dismiss ProgressDialog by Handler
pd.dismiss();

}
else
{

weather();
// dismiss ProgressDialog by Handler
pd.dismiss();
}

}

});<--(Error:Syntax error on token ")", Delete this token)

最佳答案

如果您正确缩进代码,这样的问题会更容易发现。

如果我正确匹配了大括号,我认为直接问题(语法错误)应该通过简单地删除 ) 字符来解决。

但是,匿名线程类实例化中的 this 参数确实有些可疑:

  1. 如果您想传递这样的参数,则需要在匿名内部类中提供相应的构造函数。
  2. 看起来this可能是Runnable的一个实例。如果是这样,那么重写 Thread 的 run 方法就达不到通过构造函数传递 Runnable 的目的。
  3. 子类化 Thread 类通常被认为是一个坏主意。

我认为你的代码应该如下所示:

Thread dt = new Thread(new Runnable() {
public void run() {
...
}
});

...这可能可以解释为什么你首先会有额外的 ) !!

或者,如果this确实是一个Runnable,你可以这样写:

Thread dt = new Thread(this);

关于java - 需要找到线程错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3664703/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com