Guest User

Untitled

a guest
Jan 21st, 2019
74
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.51 KB | None | 0 0
  1. public class Cell {
  2. private String stringVal;
  3. private Object valVal;
  4. private Transformer<?> trans;
  5. private Class<?> valClass;
  6.  
  7. public String getStringVal(){
  8. return stringVal;
  9. }
  10.  
  11. public boolean setStringVal(){
  12. //this not only set the value, but checks it with the transformer that it meets constraints and updates valVal too
  13. }
  14.  
  15. public <T> T getValVal(){
  16. return (T) valVal;
  17. //This works, but I don't understand why
  18. }
  19. }
  20.  
  21. public <T> T getTypedElem() {
  22. T output = (T) this.typedElem;
  23. System.out.println(output.getClass());
  24. return output;
  25. }
  26.  
  27. public <T> T getTypedElem() {
  28. T output = null;
  29. try {
  30. output = (T) this.typedElem;
  31. System.out.println(output.getClass());
  32. } catch (ClassCastException e) {
  33. System.out.println("class cast caught");
  34. return null;
  35. }
  36. return output;
  37. }
  38.  
  39. public <T> T getValue(Class<T> cls) {
  40. if (valVal == null) return null;
  41. else {
  42. if (cls.isInstance(valVal)) return cls.cast(valVal);
  43. return null;
  44. }
  45. }
  46.  
  47. public Object getValVal() {
  48. return valVal;
  49. }
  50.  
  51. public <T> void setObject(Transformer<T> transformer, T object) {}
  52.  
  53. class Cell {
  54. String val
  55. def valVal
  56. }
  57.  
  58. def cell = new Cell(val:"10.0")
  59. cell.valVal = cell.val as BigDecimal
  60. BigDecimal valVal = cell.valVal
  61. assert valVal.class == BigDecimal
  62. assert valVal == 10.0
  63.  
  64. cell.val = "20"
  65. cell.valVal = cell.val as Integer
  66. Integer valVal2 = cell.valVal
  67. assert valVal2.class == Integer
  68. assert valVal2 == 20
Add Comment
Please, Sign In to add comment