匿名类,除了只能使用一次,其实还有其他用处,比如你想使用一个类的protected方法时,但是又和这个类不在同一个包下,这个时候匿名类就派上用场了,你可以定义一个匿名类继承这个类,在这个匿名类中定义一个方法,用super调用你想调用的那个protected方法(虽说,你可以定义一个类继承这个类,但是匿名类更加简洁,因为你只是想调用这个protected方法而已). public class TestClass(){ protected void test(){ System.out.printl…
建议40: 匿名类的构造函数很特殊 在上一个建议中我们讲到匿名类虽然没有名字,但可以有一个初始化块来充当构造函数,那这个构造函数是否就和普通的构造函数完全一样呢?我们来看一个例子,设计一个计算器,进行加减乘除运算,代码如下: // 定义一个枚举,限定操作符 enum Ops { ADD, SUB } class Calculator { private int i, j, result; // 无参构造 public Calculator() { } // 有参构造 public Calcula…
在使用gson过程中,一般会将数据存在一个对象模型中,使用gson将模型转换成json字符串用于数据交互. 代码形如: ArrayList<String> list = new ArrayList<>(); list.add("test1"); list.add("test2"); Gson gson = new Gson(); System.out.println("list to json is : "+gson.to…
/* 匿名内部类:就是内部类的简写格式. 必须前提:内部类必须继承或者实现一个类或者接口. 匿名内部类其实就是一个匿名 子类对象. 格式:new 父类对象 or 接口(){ 子类内容:(覆盖父类的, 而且可以增加自己的方法) }//相当于将 继承父类 和 new 的过程 写到了一起有某有!很方便有某有! */ class Outer{ int num; public Outer(){ num = 5; } class Inner{ int num; public Inner(){ num = 1…
何谓匿名类,其实本质和普通定义的类一样,只不过是由系统的编译器来完成的,首先举个例子. 一般情况 //声明一个类,包含贴别多的字段 public class Person() { public string Name{set;ge;} public int Age{set;get;} . } //实例化和初始化 Person person=new Person(); person.Name="喜羊羊"; person.Age="懒洋洋"; 可以看出,当字段特别多的时…
java中的匿名类有一个倍儿神奇的用法,见下面代码示例: package contract; public interface ISay { void sayHello(); } 上面是一个简单的接口,下面是如何使用: package jimmy; import contract.ISay; public class Program { public static void main(String[] args) { ISay say = new ISay() { public void say…
一般情况下,我们需要声明一个类去继承一个接口,然后再new这个类,赋值给接口.但有时后这个类只会被调用一次,为了调用方便,那么就可以用匿名类来简化这个步骤. interface IKey{ void open(); } public class Ex21 { public static void main(String[] args){ IKey instance= new IKey(){ public void open(){ System.out.println("this is shot&…
在开发中可能会遇到这几种情况 1.EF或LINQ查询出来的匿名对象在其它地方调用不方便,又懒的手动建实体类 2.通过datatable反射实体需要先建一个类 ,头痛 3.通过SQL语句返回的实体也需要先建一个类 ,头痛 4.如果通过代码生成器要写模版,需要安装或者不想生成一堆不用的类 为了解决上面的不便之处,我封装了一个实体生成类,可以扔到程序里面任意调用 封装类: using System; using System.Collections.Generic; using System.Linq…
1.自动属性 Auto-Implemented Properties 2.隐式类型 var var变量不能作为全局变量使用,因为不能在编译时确定类型 3.参数默认值 和 命名参数 4.对象初始化器 与 集合初始化器 { } Person p = new Person(){ Name="aa",Age=18};//属性初始化器 List<Person> list = new List<Person>(){new Person(){ Name="aa&q…
感谢http://blog.csdn.net/jjx0224/article/details/5887589 感谢http://hi.baidu.com/guodong828/blog/item/cc53404ef40af002b3de0500.html c# 匿名类 上代码: using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace ConsoleApplica…
建议39: 使用匿名类的构造函数 阅读如下代码,看看是否可以编译: public class Client { public static void main(String[] args) { List l1 = new ArrayList(); List l2 = new ArrayList(){}; List l3 = new ArrayList(){{}}; System.out.println(l1.getClass() == l2.getClass()); System.out.pri…
代码(test.java): interface ie{ public void print(); } class outer{} public class test{ public class inner{} public void test(ie e){ e.print(); } public static void main(String[] args){ new test().test(new ie(){ public void print(){ System.out.println("…
package com.tn.treeSet; public class Student { private String name; private int age; public Student(){} public Student(String name, int age) { super(); this.name = name; this.age = age; } public String getName() { return name; } public void setName(S…