Advertisement
Guest User

Untitled

a guest
Feb 21st, 2019
95
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.61 KB | None | 0 0
  1. private Class<?> classReturn(String className){
  2. return new Class<className>;
  3. }
  4.  
  5. value = (classReturn(type)) value ;
  6.  
  7. Class.forName(className);
  8.  
  9. public static <T> T parseAs(String text, String className) {
  10. Class clazz;
  11. FOUND:
  12. {
  13. ClassNotFoundException e = null;
  14. for (String pkg : "java.lang.,java.util.,java.math.,".split(",",-1)) {
  15. try {
  16. clazz = Class.forName(pkg + className);
  17. break FOUND;
  18. } catch (ClassNotFoundException e2) {
  19. e = e2;
  20. }
  21. }
  22. throw new IllegalArgumentException(e);
  23. }
  24. try {
  25. Method valueOf = clazz.getMethod("valueOf", String.class);
  26. return (T) valueOf.invoke(null, text);
  27. } catch (Exception e) {
  28. try {
  29. Constructor<T> valueOf = clazz.getConstructor(String.class);
  30. return (T) valueOf.newInstance(text);
  31. } catch (Exception e2) {
  32. throw new IllegalArgumentException(e);
  33. }
  34. }
  35. }
  36.  
  37. enum BuySell {
  38. BUY, SELL
  39. }
  40. public static void main(String... args) {
  41. for (String className : "String,Long,Double,BigDecimal".split(",")) {
  42. Object o = parseAs("1", className);
  43. System.out.println(className + " => " + o.getClass() + " as " + o);
  44. }
  45. Object o = parseAs("BUY", BuySell.class.getName());
  46. System.out.println("BuySell => " + o.getClass() + " as " + o);
  47. }
  48.  
  49. String => class java.lang.String as 1
  50. Long => class java.lang.Long as 1
  51. Double => class java.lang.Double as 1.0
  52. BigDecimal => class java.math.BigDecimal as 1
  53. BuySell => class Main$BuySell as BUY
  54.  
  55. return Class.forName(className);
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement