首页 > 其他分享 >3月10号总结

3月10号总结

时间:2023-03-10 22:37:01浏览次数:29  
标签:总结 10 java lang int reflect 注解 public

1 注解
(1) 注解(Annotation)也被称为元数据(Metadata),用于修饰包、方法、属性、构造器、局部变量等数据信息。
(2) 注解不影响程序逻辑,但注解可以被编译或运行。
(3) 在JavaSE中,注解的使用目的比较简单,例如标记过时的功能,忽略警告等。在JavaEE中注解占据了更重要的角色,例如用来配置应用程序的任何切面,代替JavaEE旧版中所遗留的繁冗代码和XML配置等。

2 常用注解
(1) @Override: 限定某个函数必须重载其他函数,该注解只能用于函数
(2) @Deprecated:用于表示某个程序元素(类、函数)已过时
(3) @SuppressWarnings:抑制编译器警告

3 元注解
修饰其他注解的注解,就被称为元注解。

(1) Retention:指定注解的作用范围
(2) Target:指定注解可以用在哪些地方
(3) Document:注定注解是否出出现在javadoc中
(4) Inherited:子类会继承父类的注解

10.2 反射
反射:动态引入类、动态调用实例的成员函数、成员变量等。

10.2.1 常用API
(1) java.lang.Class
(2) java.lang.reflect.Method
(3) java.lang.reflect.Field
(4) java.lang.reflect.Constructor

package org.yxc;

public class Calculator {
    public String name;

    public Calculator() {}

    public Calculator(String name) {
        this.name = name;
    }

    public int add(int a, int b) {
        return a + b;
    }
}
package org.yxc;

import java.lang.reflect.Constructor;
import java.lang.reflect.Field;
import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;

public class Main {
    public static void main(String[] args) throws ClassNotFoundException, InstantiationException, IllegalAccessException, NoSuchMethodException, InvocationTargetException, NoSuchFieldException {
        Class<?> cls = Class.forName("org.yxc.Calculator");
        Object o = cls.newInstance();

        Method method = cls.getMethod("add", int.class, int.class);
        int res = (int)method.invoke(o, 3, 4);
        System.out.println(res);

        Field field = cls.getField("name");
        field.set(o, "My Calculator!");
        System.out.println(field.get(o));

        Constructor<?> constructor = cls.getConstructor(String.class);
        Object new_o = constructor.newInstance("New Calculator!");
        System.out.println(new_o);
    }
}

 

标签:总结,10,java,lang,int,reflect,注解,public
From: https://www.cnblogs.com/liucaizhi/p/17204824.html

相关文章

  • 2023-3-10 #44 所有的感受都将被铭记在心 不必劳烦群星指引
    来补之前没考的牛客了!!"蔚来杯"2022牛客暑期多校训练营(加赛)(EZECRound)258JJellyfishanditsdream感觉自己不太擅长这种。差分,操作变成\((x,1)\rightarrow(x+1,0)\)......
  • 今日总结
    今天学习了javaservlet的知识JavaServlet是运行在Web服务器或应用服务器上的程序,它是作为来自Web浏览器或其他HTTP客户端的请求和HTTP服务器上的数据库或应用......
  • 2023年3月10号
    今天满课,今天晚上复习一下WEB最近四周的课程内容,下次要求我们进行实验并完成对应的任务。HTML标签是由尖括号包围的关键词HTML标签通常成对出现的,分别称为开始标签和结束(......
  • 2023.3.10每日总结
    web项目实现mysql增删改查并从前端页面操作 1.看下各个包下面的文件,我上一篇文章已经说过了,这里对上一章有一部分重复的2.User.java是数据库元素写的一个类,代码......
  • day10 打卡232. 用栈实现队列 225. 用队列实现栈
    day10打卡232.用栈实现队列225.用队列实现栈232.用栈实现队列232题目链接classMyQueue{//管理进的元素Stack<Integer>stackIn;//管理出的元素......
  • 20230310考试总结
    \(0h\)~\(0.5h\):大概将所有题目看了一下并且稍微想了一下T1,但没什么进展。\(0.5h\)~\(1.5h\):发现T3是求最大团的问题,直接打了随机化算法。\(1.5h\)~\(2h\)......
  • 初识C语言3/10
    循环语句:while循环:#include<stdio.h>intmain(){inti=1;while(i<=10){if(i==5)break;printf("%d\n",i);//1,2,3,4,5......
  • 每日总结-23.3.10
    <?xmlversion="1.0"encoding="utf-8"?><LinearLayoutxmlns:android="http://schemas.android.com/apk/res/android"android:orientation="horizontal"android:layout_w......
  • 10.优化登陆达到维持登陆和免密登陆功能
    在utils目录下增加了memoryUtils.js和storageUtils.js文件需要安装store.js —>npm installstore【版本:2.0.12】 查看local存储信息,打开开发者工具memor......
  • 每日总结 3.10
    今天学习了按键的操作。首先是按键的点击事件:packagecom.example.dongnao;importandroidx.appcompat.app.AppCompatActivity;importandroid.annotation.Suppress......