2 qq 36978352 qq_36978352 于 2017.01.09 10:51 提问

java创建线程报错问题

图片说明public class test {
/**
* @param args
*/
public static void main(String[] args) {
new a();
}

 public  class a extends Thread{

     public void run(){
         new Login();        
     }
 }

}

为什么 a 这个类必须是static 才能new a()

2个回答

oyljerry
oyljerry   Ds   Rxr 2017.01.09 11:11
已采纳

这个是静态类语法限制等,
1. 把a单独放到另一个包中去
2. 把a申明为静态类

http://stackoverflow.com/questions/15331846/non-static-variable-this-cannot-be-referenced-from-a-static-context

oyljerry
oyljerry   Ds   Rxr 2017.01.09 11:15

还有一种方法就是通过外层类实例来访问

                        test t = new test();
            a x = t.new a();
            x.run ();
Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
一个由多线程而引发内存溢出故障的案例分析
一日凌晨,手机疯狂报警,短信以摧枯拉朽之势瞬间以百条的速度到达,我在睡梦中被惊醒,看到短信的部分内容如下: 看到这个错误,我的第一感觉是创建了大量的线程,并且资源没有被回收,但是报错的却是其中一台应用服务器,表象看不太像是程序的问题,而此时在凌晨并发量也不应该会有这么大啊?同时我们不能因为报错暂停服务使用,而影响商户,所以决定要先解决问题,于是采用必杀技重启这台服务器,观察一小时内存
Java创建线程数目问题
一、JVM最大线程数        能创建的线程数的具体计算公式如下:(MaxProcessMemory-JVMMemory-ReservedOsMemory)/(ThreadStackSize)=Number of threads        MaxProcessMemory 指的是一个进程的最大内存       JVMMemory JVM内存       ReservedOsMe
linux下线程创建失败问题
linux下线程创建失败问题 写个碰到的问题,记录下自己的技术之路点滴 pthread_detach(pthread_self()) linux线程执行和windows不同,pthread有两种状态joinable状态和unjoinable状态, 如果线程是joinable状态,当线程函数自己返回退出时或pthread_exit时都不会释放线程所占用堆栈和线程描述符(总计8K多)。
java创建线程的四种方式
java创建线程的三种方式 1. 继承Thread类创建线程类 2. 通过Runable接口创建线程类 3. 通过Callable和FutureTask创建线程     a. 创建Callable接口的实现类,并实现call()方法;     b. 创建Callable实现类的实例,使用FutureTask类来包装Callable对象,该FutureTask对象封装了该C
Java创建线程的三种方式及其对比
Java中创建线程主要有三种方式: 一、继承Thread类创建线程类 (1)定义Thread类的子类,并重写该类的run方法,该run方法的方法体就代表了线程要完成的任务。因此把run()方法称为执行体。 (2)创建Thread子类的实例,即创建了线程对象。 (3)调用线程对象的start()方法来启动该线程。 [java] view plain 
java多线程ppt
java多线程PPT 多线程基本概念 创建线程的方式 线程的挂起与唤醒 多线程问题
java线程(1)——三种创建线程的方式
1、接口实现更灵活,java不支持多继承。在这方面,Runnable和Callable更有优势。 2、返回值问题。Runnable和Thread都不能有返回值,但Callable可以,而且支持多种类型的数据。
线程多次创建的问题
这样可能出问题,多次点击后,启动多个anim线程,但是一次线程的启动会导致上次线程变成无主的,导致stop线程只能传给当前叫animThread的线程case R.id.btn_start: animThread = new AnimThread(); animThread.start(); stopThr
java创建线程的三种方式及其对比
Java中创建线程主要有三种方式: 一、继承Thread类创建线程类 (1)定义Thread类的子类,并重写该类的run方法,该run方法的方法体就代表了线程要完成的任务。因此把run()方法称为执行体。 (2)创建Thread子类的实例,即创建了线程对象。 (3)调用线程对象的start()方法来启动该线程。 package com.thread; public class Firs
并发编程学习总结(一) :java 创建线程的三种方式的优缺点和实例
java 创建线程有三种方式: (1) 继承Thread 类 (2)实现Runnable接口  (3)实现Callable接口