Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package com.bootcamp;
- import java.lang.reflect.Constructor;
- import java.lang.reflect.Field;
- import java.lang.reflect.InvocationTargetException;
- import java.lang.reflect.Method;
- import java.util.ArrayList;
- import java.util.Arrays;
- import java.util.List;
- public class Reflections {
- public static void main(String[] args) throws ClassNotFoundException, NoSuchFieldException, NoSuchMethodException, IllegalAccessException, InvocationTargetException, InstantiationException {
- Field[] bankEntityField = BankEntity.class.getDeclaredFields();
- List<Field> bankEntityFieldList = Arrays.asList(bankEntityField);
- for(Field field : bankEntityField){
- System.out.println(field.getName());
- }
- for(int i=0;i<bankEntityField.length;i++){
- System.out.println(bankEntityField[i].getName());
- }
- bankEntityFieldList.forEach(field->{
- System.out.println(field.getName());
- });
- Integer ip= new Integer(4);
- int ipk=4;
- System.out.println(ip);
- //Class accountClass = Account.class;
- String accountClassName = "com.bootcamp.Account";
- Class accountClass = Class.forName(accountClassName);
- /*account class adalah class dengan name com.bootcamp.Account*/
- for(Field accFiled : accountClass.getDeclaredFields()){
- System.out.println(accFiled.getName());
- }
- for(int i=0;i<accountClass.getDeclaredFields().length;i++){
- accountClass.getDeclaredFields()[i].getName();
- }
- Constructor accountConstructor = accountClass.getConstructor();
- Constructor accountDefConsturctor = accountClass.getConstructor(int.class);
- Object accountObj = accountConstructor.newInstance();
- Object accountObjDef = accountDefConsturctor.newInstance(95);
- Account account = ((Account) accountObj);
- Account accountDef = ((Account) accountObjDef);
- System.out.println(account);
- System.out.println(accountDef);
- account.setUserName("afan");
- account.setPassword("1234");
- System.out.println(account);
- Field licensed = accountClass.getDeclaredField("licensed");
- //
- licensed.setAccessible(true);
- licensed.set(account,true);
- System.out.println(account);
- System.out.println(account);
- Method[] accountMethods = accountClass.getDeclaredMethods();
- for(Method accMethod : accountMethods){
- System.out.println("Method "+accMethod.getName());
- }
- Method tranferMethod = accountClass.getDeclaredMethod("transferMoneyToMyRec");
- tranferMethod.invoke(account);
- //System.out.println(accountClass.getName());
- //Class.forName("");
- }
- }
- package com.bootcamp;
- import java.util.Random;
- public class Account extends BankEntity {
- private Integer id;
- private String userName;
- private String password;
- private boolean licensed;
- public String nonPrivateProperty;
- public Account(int id) {
- this.id = id;
- }
- public Account() {
- this.id = 24;
- }
- public String getUserName() {
- return userName;
- }
- public void setUserName(String userName) {
- this.userName = userName;
- }
- public String getPassword() {
- return password;
- }
- public void setPassword(String password) {
- this.password = password;
- }
- public Integer getId() {
- return id;
- }
- public void setId(Integer id) {
- this.id = id;
- }
- public void getRandomeNumber(){
- System.out.println(new Random().nextInt());
- }
- public void powerNumber(Integer intVal){
- System.out.println(intVal*intVal);
- }
- public void transferMoneyToMyRec(){
- System.out.println("Uang 1 milyar telah di transfer ke rekening anda");
- }
- public static void sayHello(){
- System.out.println("hello");
- }
- @Override
- public String toString() {
- return "Account{" +
- "id=" + id +
- ", userName='" + userName + '\'' +
- ", password='" + password + '\'' +
- ", licensed=" + licensed +
- '}';
- }
- }
- package com.bootcamp;
- public class BankEntity {
- private String uid;
- private String cardNumber;
- public String getUid() {
- return uid;
- }
- public void setUid(String uid) {
- this.uid = uid;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement