静态方法调用内部类时候的new 问题

package tool;

/**
 * 静态方法调用内部类时候的new 问题
 */
public class aa {

    // 静态方法
    // 静态方法new 有问题
    public static void aa() {
        bb b = new bb(); //报错
        bb b1 = new aa().new bb();//没问题

        //解决方法
        /*
         * 1.内部类设置成静态类
         * 2.内部类new的方式   bb b = new aa().new bb()
         *
         */
    }

    // 非静态的方法直接new,没有问题
    public void cc() {
        bb b = new bb();
    }

    // 内部类bb
    class bb {
        private int b;

        public int getB() {
            return b;
        }

        public void setB(int b) {
            this.b = b;
        }

    }
}

原文地址:https://www.cnblogs.com/renjianjun/p/9204988.html

时间: 2024-11-12 07:53:26

静态方法调用内部类时候的new 问题的相关文章

Struts2.3.20不支持OGNL静态方法调用allowStaticMethodAccess

<!-- 允许OGNL调用静态方法 --> <constant name="struts.ognl.allowStaticMethodAccess" value="true"/> 即便在struts.xml中设置了,允许静态方法访问,在JSP页面中,依然无法调用,从维基上面看到了如下一段说明, 也就是说,从安全角度的考虑,即便你在struts.xml中启用了该项配置,它也起不到效果,建议你移除或修改静态方法调用的部分.

PHP 类中静态方法调用非静态方法

静态方法调用非静态方法: 在类中静态方法中,需要实例化对象,然后再调用类中的方法 非静态方法调用静态方法: 可以self 或者 类名加::的形式调用 如下面的案例: <?php class A{ public function noneStaticFun(){ echo __CLASS__." none static function<br/>"; } public static function staticFun(){ echo __CLASS__."

解决静态方法调用注入的service

1 在使用jpa的复杂查询时,声明了specification时声明为静态方法,导致注入的service无法使用,故想到俩种方式,一种手动注入,一种注解注入,此文使用的时注解注入: 解决静态方法调用注入的service 1 // 先说一下解决方法 2 @Autowired 3 private AService aService; 4 5 // 声明静态变量,为了之后调用service 6 public static ClassA classA; 7 8 // 关键:通过注解实现注入 9 @Pos

静态方法调用非静态方法——编译出现错误

出现:No enclosing instance of type Test_Static is accessible. Must qualify the allocation with an enclosing instance of type Test_Static (e.g. x.new A() where x is an instance of Test_Static). 上面的编译错误:可能由于静态public static main调用类的非静态方法AA 有两种解决办法: 第一种: 将

java静态方法调用非静态方法

我们都知道,静态static方法中不能调用非静态non-static方法,准确地说是不能直接调用non-static方法.但是可以通过将一个对象的引用传入static方法中,再去调用该对象的non-static方法. 其实这个事实的应用很经常,以至于我们不去重视:在主函数(static方法)中我们经常创建某个类的实例,再利用其饮用变量调用它的非静态方法. //StaticMethodTest.java //A ststic method cannot call a non-static meth

关于PHP静态方法调用和实例化类调用的区别

1.首先来澄清一些观点 由于静态方法在内存中只有一份,无论你调用多少次,都是共用的,而且没有对象的概念,所以不能在静态方法里面使用$this调用,如果非得调用的话,只能实例化自身类 而实例化不一样,每一个实例化是一个对象,在内存中是多个的 <?php Error_reporting(E_ALL|E_STRICT); class A{ public function bar(){ echo 'bar'.PHP_EOL; } public static function foo(){ echo 'f

关于工具类静态方法调用@Autowired注入的service类问题

@Component //此处注解不能省却(0) 1 public class NtClient { 2 /** 3 * 日志 4 */ 5 private static String clazzName = NtClient.class.getName(); 6 /** 7 * 此处是要使用的service需要spring注入(1) 8 */ 9 @Autowired 10 private NotifyTimeService notifyTimeService; 11 private stat

静态工具类中使用注解注入service(静态方法调用有注解的非静态方法)

原文转载:http://blog.csdn.net/p793049488/article/details/37819121 解决方案如下: /** * */ package cn.common.util; import javax.annotation.PostConstruct; import javax.servlet.http.HttpServletRequest; import org.springframework.beans.factory.annotation.Autowired;

C# 静态方法调用非静态方法

转载:http://blog.csdn.net/seattle1215/article/details/6657814 using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace Cash { class Program { static void Main(string[] args) { (new Program()).run(); // writeFee(ca