先看代码:

package com.reflect;
import java.lang.reflect.Method;
import junit.framework.TestCase;
import static java.lang.System.out;
public class TestSynthetic extends TestCase {

    public void testSynthetic() {
        try {
            Method[] methods = User.class.getDeclaredMethods();
            for (Method method : methods) {
                out.println(method.toString() + ", " + method.isSynthetic());
            }
        } catch (SecurityException e) {
            e.printStackTrace();
        }
    }

    class User {
        private int age;
        private String name;

        private User() {
        }
        private User(int age, String name) {
            this.age = age;
            this.name = name;
        }
        private int getAge() {
            return age;
        }
        private void setAge(int age) {
            this.age = age;
        }
        private String getName() {
            return name;
        }
        private void setName(String name) {
            this.name = name;
        }
    }
}

运行testSynthetic,输出:

private java.lang.String com.reflect.TestSynthetic$User.getName(), false
private void com.reflect.TestSynthetic$User.setName(java.lang.String), false
private int com.reflect.TestSynthetic$User.getAge(), false
private void com.reflect.TestSynthetic$User.setAge(int), false

修改测试代码:

package com.reflect;
import java.lang.reflect.Method;
import junit.framework.TestCase;
import static java.lang.System.out;

public class TestSynthetic extends TestCase {

    public void testSynthetic() {
        try {
            User user = new User();
            user.age = 1;
            Method[] methods = User.class.getDeclaredMethods();
            for (Method method : methods) {
                out.println(method.toString() + ", " + method.isSynthetic());
            }
        } catch (SecurityException e) {
            e.printStackTrace();
        }
    }

    class User {
        private int age;
        private String name;

        private User() {
        }
        private User(int age, String name) {
            this.age = age;
            this.name = name;
        }
        private int getAge() {
            return age;
        }
        private void setAge(int age) {
            this.age = age;
        }
        private String getName() {
            return name;
        }
        private void setName(String name) {
            this.name = name;
        }
    }
}

运行结果:

private java.lang.String com.reflect.TestSynthetic$User.getName(), false
private void com.reflect.TestSynthetic$User.setName(java.lang.String), false
static void com.reflect.TestSynthetic$User.access$1(com.reflect.TestSynthetic$User,int), true
private int com.reflect.TestSynthetic$User.getAge(), false
private void com.reflect.TestSynthetic$User.setAge(int), false

发现增加了一个方法:

static void com.reflect.TestSynthetic$User.access$1(com.reflect.TestSynthetic$User,int), true

这是编译器为这个类增加的,因为User这个内部类,全部的变量和方法,都是private的,但是外部程序要去调用,所以编译器做了这个工作。
上面只是修改了测试代码,并没有修改User这个内部类,就可以增加User的方法,而增加的这个方法是JVM动态增加的,并不属于User类本身。

文章来源:CSDN

分类: Java

48 条评论

phuket legal firm · 2023年10月4日 上午6:29

… [Trackback]

[…] Find More here to that Topic: hugr.cn/2019/12/13/java中method类中的issynthetic方法是个什么鬼?/ […]

รถป้าย · 2023年10月4日 上午6:36

… [Trackback]

[…] Read More Info here on that Topic: hugr.cn/2019/12/13/java中method类中的issynthetic方法是个什么鬼?/ […]

ป้ายโฆษณา · 2023年10月4日 上午8:37

… [Trackback]

[…] Read More to that Topic: hugr.cn/2019/12/13/java中method类中的issynthetic方法是个什么鬼?/ […]

superkaya88 · 2023年10月7日 下午3:05

… [Trackback]

[…] Find More Information here on that Topic: hugr.cn/2019/12/13/java中method类中的issynthetic方法是个什么鬼?/ […]

superkaya88 · 2023年10月11日 下午8:19

… [Trackback]

[…] Find More Info here on that Topic: hugr.cn/2019/12/13/java中method类中的issynthetic方法是个什么鬼?/ […]

Relx · 2023年10月13日 上午7:03

… [Trackback]

[…] Here you will find 81224 more Information on that Topic: hugr.cn/2019/12/13/java中method类中的issynthetic方法是个什么鬼?/ […]

ks pod · 2023年10月13日 上午7:35

… [Trackback]

[…] Info to that Topic: hugr.cn/2019/12/13/java中method类中的issynthetic方法是个什么鬼?/ […]

จำหน่ายเครื่องมือแพทย์ · 2023年10月13日 上午8:45

… [Trackback]

[…] Info on that Topic: hugr.cn/2019/12/13/java中method类中的issynthetic方法是个什么鬼?/ […]

USA Gun Shops · 2023年10月15日 上午7:49

… [Trackback]

[…] Info on that Topic: hugr.cn/2019/12/13/java中method类中的issynthetic方法是个什么鬼?/ […]

buy identity card online · 2023年10月16日 上午6:54

… [Trackback]

[…] Read More Information here to that Topic: hugr.cn/2019/12/13/java中method类中的issynthetic方法是个什么鬼?/ […]

goatpg · 2023年10月17日 上午6:26

… [Trackback]

[…] There you can find 65821 more Information on that Topic: hugr.cn/2019/12/13/java中method类中的issynthetic方法是个什么鬼?/ […]

GiocoPlus · 2023年10月22日 上午6:32

… [Trackback]

[…] Information on that Topic: hugr.cn/2019/12/13/java中method类中的issynthetic方法是个什么鬼?/ […]

slot · 2023年10月22日 上午7:36

… [Trackback]

[…] Information on that Topic: hugr.cn/2019/12/13/java中method类中的issynthetic方法是个什么鬼?/ […]

hpl laminate decorative · 2023年10月22日 上午7:58

… [Trackback]

[…] Here you will find 44008 more Information on that Topic: hugr.cn/2019/12/13/java中method类中的issynthetic方法是个什么鬼?/ […]

website · 2023年10月23日 下午8:21

… [Trackback]

[…] Info to that Topic: hugr.cn/2019/12/13/java中method类中的issynthetic方法是个什么鬼?/ […]

relax massage · 2023年10月24日 上午7:17

… [Trackback]

[…] Here you can find 19452 additional Information to that Topic: hugr.cn/2019/12/13/java中method类中的issynthetic方法是个什么鬼?/ […]

superkaya 88 slot · 2023年10月24日 下午6:15

… [Trackback]

[…] Information to that Topic: hugr.cn/2019/12/13/java中method类中的issynthetic方法是个什么鬼?/ […]

https://betwinner-bf.com/betwinner-apk/ · 2023年10月26日 上午3:26

… [Trackback]

[…] Find More here to that Topic: hugr.cn/2019/12/13/java中method类中的issynthetic方法是个什么鬼?/ […]

führerschein kaufen online · 2023年10月29日 上午7:07

… [Trackback]

[…] Find More Information here on that Topic: hugr.cn/2019/12/13/java中method类中的issynthetic方法是个什么鬼?/ […]

เกมยิงปลา Fishing Game · 2023年10月30日 上午7:21

… [Trackback]

[…] Read More Information here to that Topic: hugr.cn/2019/12/13/java中method类中的issynthetic方法是个什么鬼?/ […]

führerschein kaufen online · 2023年10月30日 上午8:04

… [Trackback]

[…] Info on that Topic: hugr.cn/2019/12/13/java中method类中的issynthetic方法是个什么鬼?/ […]

führerschein kaufen klasse b · 2023年11月1日 上午8:00

… [Trackback]

[…] Find More Information here to that Topic: hugr.cn/2019/12/13/java中method类中的issynthetic方法是个什么鬼?/ […]

สมัครเว็บหวย 24 ดีไหม หวยออนไลน์ดีอย่างไร เรามีคำตอบให้คุณ! · 2023年11月4日 上午7:39

… [Trackback]

[…] Find More Info here on that Topic: hugr.cn/2019/12/13/java中method类中的issynthetic方法是个什么鬼?/ […]

Hunter898 · 2023年11月4日 上午8:53

… [Trackback]

[…] Read More on to that Topic: hugr.cn/2019/12/13/java中method类中的issynthetic方法是个什么鬼?/ […]

การนับแต้ม โป๊กเกอร์ · 2023年11月5日 上午10:05

… [Trackback]

[…] Information on that Topic: hugr.cn/2019/12/13/java中method类中的issynthetic方法是个什么鬼?/ […]

บาคาร่า lsm99 · 2023年11月5日 上午11:21

… [Trackback]

[…] Read More on to that Topic: hugr.cn/2019/12/13/java中method类中的issynthetic方法是个什么鬼?/ […]

ks · 2023年11月5日 上午11:26

… [Trackback]

[…] Information to that Topic: hugr.cn/2019/12/13/java中method类中的issynthetic方法是个什么鬼?/ […]

สล็อตออนไลน์ lsm99 · 2023年11月6日 上午8:51

… [Trackback]

[…] Find More on that Topic: hugr.cn/2019/12/13/java中method类中的issynthetic方法是个什么鬼?/ […]

แทงมวยออนไลน์ · 2023年11月9日 上午7:56

… [Trackback]

[…] Find More Info here on that Topic: hugr.cn/2019/12/13/java中method类中的issynthetic方法是个什么鬼?/ […]

http://www.dislivelli.eu/forum/viewtopic.php?f=6&t=196857 · 2023年11月9日 下午9:47

… [Trackback]

[…] Info on that Topic: hugr.cn/2019/12/13/java中method类中的issynthetic方法是个什么鬼?/ […]

hair extension inserts welham green · 2023年11月11日 上午12:13

… [Trackback]

[…] Find More here on that Topic: hugr.cn/2019/12/13/java中method类中的issynthetic方法是个什么鬼?/ […]

site para assistir filmes|site para assistir filmes|site para assistir filmes|site para assistir series e filmes|site para assistir series e filmes|site para assistir series e filmes|website para assistir filmes|website para assistir filmes|website para a · 2023年11月11日 上午2:02

… [Trackback]

[…] Read More here to that Topic: hugr.cn/2019/12/13/java中method类中的issynthetic方法是个什么鬼?/ […]

แทงหวย · 2023年11月12日 上午12:30

… [Trackback]

[…] Here you can find 18538 more Info to that Topic: hugr.cn/2019/12/13/java中method类中的issynthetic方法是个什么鬼?/ […]

yehyeh · 2023年11月12日 上午8:09

… [Trackback]

[…] Here you will find 96720 more Info to that Topic: hugr.cn/2019/12/13/java中method类中的issynthetic方法是个什么鬼?/ […]

สล็อตวอเลท · 2023年11月12日 上午8:20

… [Trackback]

[…] Find More to that Topic: hugr.cn/2019/12/13/java中method类中的issynthetic方法是个什么鬼?/ […]

bonanza178 · 2023年11月13日 上午12:27

… [Trackback]

[…] Info on that Topic: hugr.cn/2019/12/13/java中method类中的issynthetic方法是个什么鬼?/ […]

balidwipa.com · 2023年11月13日 下午3:04

… [Trackback]

[…] Read More to that Topic: hugr.cn/2019/12/13/java中method类中的issynthetic方法是个什么鬼?/ […]

웹툰 마스크걸 다시보기 · 2023年11月13日 下午6:31

… [Trackback]

[…] Info on that Topic: hugr.cn/2019/12/13/java中method类中的issynthetic方法是个什么鬼?/ […]

แจกเครดิตฟรี ยืนยันเบอร์ · 2023年11月15日 上午7:36

… [Trackback]

[…] Find More Information here to that Topic: hugr.cn/2019/12/13/java中method类中的issynthetic方法是个什么鬼?/ […]

ข้อมูลเกี่ยวกับบริษัท Big Gaming · 2023年11月15日 上午7:39

… [Trackback]

[…] Info on that Topic: hugr.cn/2019/12/13/java中method类中的issynthetic方法是个什么鬼?/ […]

buy magnum research firearms · 2023年11月15日 下午3:28

… [Trackback]

[…] Here you will find 37283 additional Info on that Topic: hugr.cn/2019/12/13/java中method类中的issynthetic方法是个什么鬼?/ […]

สูตรสล็อต · 2023年11月16日 上午7:30

… [Trackback]

[…] Find More on on that Topic: hugr.cn/2019/12/13/java中method类中的issynthetic方法是个什么鬼?/ […]

ทดสอบสมรรถภาพ นักกีฬา · 2023年11月16日 上午9:07

… [Trackback]

[…] Read More on that Topic: hugr.cn/2019/12/13/java中method类中的issynthetic方法是个什么鬼?/ […]

Alpha-PIHP · 2023年11月16日 下午9:25

… [Trackback]

[…] Here you will find 87134 additional Info to that Topic: hugr.cn/2019/12/13/java中method类中的issynthetic方法是个什么鬼?/ […]

ผลบอล · 2023年11月17日 上午8:10

… [Trackback]

[…] Information to that Topic: hugr.cn/2019/12/13/java中method类中的issynthetic方法是个什么鬼?/ […]

ข่าวบอล · 2023年11月17日 上午8:55

… [Trackback]

[…] Read More here on that Topic: hugr.cn/2019/12/13/java中method类中的issynthetic方法是个什么鬼?/ […]

วิเคราะห์บอลวันนี้ · 2023年11月17日 上午11:30

… [Trackback]

[…] Find More to that Topic: hugr.cn/2019/12/13/java中method类中的issynthetic方法是个什么鬼?/ […]

bonanza178 · 2023年11月17日 下午11:26

… [Trackback]

[…] Info to that Topic: hugr.cn/2019/12/13/java中method类中的issynthetic方法是个什么鬼?/ […]

评论已关闭。