线程中如何访问方法中的参数? 线程可以传参数的。 声明参数。给其set 方法。 然后直接set值即可。或者创建全局变量。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 内部类访问外部变量需要将变量声明为final,这里也就是参数x需要声明为finalvoid listen(final int x) // 方法{ new Thread(new Runnable() { @Override public void run() { // 这里没法访问局部参数x int a = x; } }); } 如果楼主的需求x可能会改变的时候,那就在方法内再定义个final变量final int tmp = x;然后在线程内run()方法中访问tmp变量。 void listen(int x) // 方法{ new Thread(new Runnable() { @Override public void run() { // 这里没法访问局部参数x } }).start(); } 这种即时线程的缺陷,不能访问方法参数!!!要改成扩充Thread的办法才能解决!class MyThread extends Thread { int _x; public MyThread(int x) { _x=x; } public void run() { // 访问 _x } }; 我试过了,final的办法是对的。 app展示数据需要校验处理吗? android如何设置ListView滚动到底部 android程序运行一段时间后挂掉 在Android中使用正则表达式,得到的结果和用正则表达式测试器得到的不一样 小白问题,The word '@drawable' is not correctly spelled 字符串截取问题! android listview android播放器的问题 UNity3d 预设 android自动化测试使用uiautomator怎样获取context? Android中实现类似QQ已登录状态下,别处再次登录踢下线机制。 Android能否实现App安装后就执行某些操作
这里也就是参数x需要声明为final
void listen(final int x) // 方法
{
new Thread(new Runnable()
{
@Override
public void run() {
// 这里没法访问局部参数x
int a = x;
}
});
}
如果楼主的需求x可能会改变的时候,那就在方法内再定义个final变量
final int tmp = x;
然后在线程内run()方法中访问tmp变量。
{
new Thread(new Runnable()
{
@Override
public void run()
{
// 这里没法访问局部参数x
}
}).start();
}
这种即时线程的缺陷,不能访问方法参数!!!
要改成扩充Thread的办法才能解决!
class MyThread extends Thread
{
int _x;
public MyThread(int x)
{
_x=x;
}
public void run()
{
// 访问 _x
}
};