Browse Source

新增 public <T> T get(String field, T defaultValue, com.jfinal.kit.Func.F11<Object, T> converter)

James 1 year ago
parent
commit
3c7524418c

+ 6 - 1
src/main/java/com/jfinal/plugin/activerecord/IRow.java

@@ -58,7 +58,12 @@ public interface IRow<M> {
     /**
      * Get column of any mysql type. Returns defaultValue if null.
      */
-    public <T> T get(String column, Object defaultValue);
+    public <T> T get(String column, T defaultValue);
+
+    /**
+     * Get column of any mysql type and convert type using converter. Returns defaultValue if null.
+     */
+    public <T> T get(String column, T defaultValue, com.jfinal.kit.Func.F11<Object, T> converter);
 
     /**
      * Get column of mysql type: varchar, char, enum, set, text, tinytext, mediumtext, longtext

+ 9 - 1
src/main/java/com/jfinal/plugin/activerecord/Model.java

@@ -329,12 +329,20 @@ public abstract class Model<M extends Model> implements IRow<M>, Serializable {
 	/**
 	 * Get attribute of any mysql type. Returns defaultValue if null.
 	 */
-	public <T> T get(String attr, Object defaultValue) {
+	public <T> T get(String attr, T defaultValue) {
 		Object result = attrs.get(attr);
 		return (T)(result != null ? result : defaultValue);
 	}
 
 	/**
+	 * Get column of any mysql type and convert type using converter. Returns defaultValue if null.
+	 */
+	public <T> T get(String attr, T defaultValue, com.jfinal.kit.Func.F11<Object, T> converter) {
+		Object result = attrs.get(attr);
+		return result != null ? converter.call(result) : defaultValue;
+	}
+
+	/**
 	 * Get attribute of mysql type: varchar, char, enum, set, text, tinytext, mediumtext, longtext
 	 */
 	public String getStr(String attr) {

+ 9 - 1
src/main/java/com/jfinal/plugin/activerecord/Record.java

@@ -253,11 +253,19 @@ public class Record implements IRow<Record>, Serializable {
 	 * Get column of any mysql type. Returns defaultValue if null.
 	 */
 	@SuppressWarnings("unchecked")
-	public <T> T get(String column, Object defaultValue) {
+	public <T> T get(String column, T defaultValue) {
 		Object result = getColumns().get(column);
 		return (T)(result != null ? result : defaultValue);
 	}
 
+	/**
+	 * Get column of any mysql type and convert type using converter. Returns defaultValue if null.
+	 */
+	public <T> T get(String column, T defaultValue, com.jfinal.kit.Func.F11<Object, T> converter) {
+		Object result = getColumns().get(column);
+		return result != null ? converter.call(result) : defaultValue;
+	}
+
 	public Object getObject(String column) {
 		return getColumns().get(column);
 	}