package com.codemonkey;
import static java.lang.System.out;
import static java.lang.System.err;
import java.util.Arrays;
import java.util.List;
import java.util.ArrayList;
import java.util.Date;
import java.util.stream.Collectors;
import java.lang.reflect.*;
public class Main{
public static final int TAM = 5;
public static void main(String[] args) {
mockDemoA();
mockDemoB();
mockDemoC();
mockDemoD();
mockDemoE();
}
public static void mockDemoE(){
Class existente;
boolean verdadero = false;
try{
existente = Class.forName("com.codemonkey.Existente");
out.println("Clase definida!!");
Package paquete = existente.getPackage();
String nombre = existente.getName();
out.println("Paquete:"+paquete);
out.println("Nombre:"+nombre);
nombre = existente.getTypeName();
out.println("Tipo: "+nombre);
verdadero = existente.isAnnotation();
String result = verdadero? "Es una anotacion" : "No es una anotacion";
//Atributos/Campos/Variables de instancia
Field[] campos = existente.getDeclaredFields();
if(campos.length > 0){
out.println("Campos encontrados!!");
out.println("Total: "+campos.length);
for(int i=0; i < campos.length; i++){
out.println(campos[i].toString());
}
}
//Constructores
Constructor<Existente>[] constructores = existente.getConstructors();
if(constructores.length > 0){
out.println("Constructores encontrados!!");
out.printf("Total: %d\n",constructores.length);
for(int k=0; k < constructores.length; k++){
out.println(constructores[k].toString());
}
}
//Metodos
Method[] metodos = existente.getDeclaredMethods();
if(metodos.length > 0){
out.println("Metodos encontrados!!");
out.println("Total:"+metodos.length);
for(int j=0; j < metodos.length;j++){
out.println(metodos[j].toString());
}
}
}catch(ClassNotFoundException cfe){
err.println("Clase no definida!!");
cfe.printStackTrace();
}
}
public static void mockDemoD(){
Punto[] puntos = new Punto[TAM];
puntos[0] = new Punto(3,4);
puntos[1] = new Punto(6,5);
puntos[2] = new Punto(4,2);
puntos[3] = new Punto();
puntos[4] = new Punto(7);
List<Punto> listaPuntos = Arrays.asList(puntos);
out.println(listaPuntos);
listaPuntos.stream()
.forEach(out::println);
out.println("----------------------------");
listaPuntos.stream()
.filter(p -> p.getX() > 0 && p.getY() > 0)
.forEach(out::println);
}
public static void mockDemoC(){
X objX = X.getX();
out.println(objX.getFecha());
}
public static void mockDemoB(){
X singleton = X.getX();
List<Character> lista = Arrays.asList('0','G','Y','1','i','4','&','2','X');
singleton.getLetras(lista);
singleton.getNumeros(lista);
}
public static void mockDemoA(){
Singleton singleton = Singleton.getSingleton();
singleton.ver();
}
}
class Existente extends Object{
private int valor;
Existente(){}
public Existente(int valor){
setValor(valor);
}
public int getValor(){
return valor;
}
public void setValor(int valor){
this.valor=valor;
}
@Override
public String toString(){
return "Existente{valor="+valor+"}";
}
}
class Punto{
private int x;
private int y;
public Punto(){}
public Punto(int x, int y){
setX(x);
setY(y);
}
public Punto(int x){
this(x,0);
}
public int getX(){
return x;
}
public void setX(int x){
this.x=x;
}
public int getY(){
return y;
}
public void setY(int y){
this.y=y;
}
@Override
public String toString(){
return "Punto{x="+x+",y="+y+"}";
}
}
class Singleton{
private static Singleton singleton = null;
private Singleton(){}
public static Singleton getSingleton(){
if(singleton == null){
singleton = new Singleton();
}
return singleton;
}
//aqui muestra el nombre 'Singleton'
public void ver(){
out.println("Estoy desde la clase: "+this.getClass().getName());
}
}
class X{
private static X singleton = null;
private X(){}
public static X getX(){
if(singleton == null){
singleton = new X();
}
return singleton;
}
public Date getFecha(){
return new Date();
}
public void getLetras(List<Character> caracteres){
out.println(caracteres);
out.println("Letras:");
List<Character> letras = caracteres.stream()
.filter(c -> Character.isAlphabetic(c))
.collect(Collectors.toList());
out.println(letras);
out.println("***************");
}
public void getNumeros(List<Character> caracteres){
out.println(caracteres);
out.println("Numeros:");
List<Character> numeros = caracteres.stream()
.filter(c -> Character.isDigit(c))
.collect(Collectors.toList());
out.println(numeros);
out.println("***************");
}
}
Be the first to comment
You can use [html][/html], [css][/css], [php][/php] and more to embed the code. Urls are automatically hyperlinked. Line breaks and paragraphs are automatically generated.