右键,新建,点击Extension Class,搜索需要扩展的类即可。
String类扩展
package Qtjambi.extensions.java.lang.String; import io.qt.core.QRegularExpression; import io.qt.core.QString; import io.qt.core.Qt; import jqt.QType; import manifold.ext.rt.api.Extension; import manifold.ext.rt.api.Jailbreak; import manifold.ext.rt.api.This; @Extension public class StringExtensions { public static char get(@This String self, int index){ if (index < 0 || index >= self.length()) throw new IndexOutOfBoundsException(); return self.charAt(index); } public static char set(@This @Jailbreak String self, int index, char c){ if (index < 0 || index >= self.length()) throw new IndexOutOfBoundsException(); self.value[index] = (byte) c; return self[index]; } public static String arg(@This String self, Object... args){ QRegularExpression re = new QRegularExpression("%\\d+"); if (re.match(self).hasMatch()) return QString.format(self, args).toString(); return String.format(self, args); } public static int count(@This String self, String separator){ return (int) QString.format(self).count(separator); } public static boolean contains(@This String self, String other, Qt.CaseSensitivity cs){ return QString.format(self).contains(other, cs); } public static int toInt(@This String self, int base){ return QString.format(self).toInt(base); } public static <T> T create(@This String self){ return (T)QType.createInstance(QType.create(self)); } public static <T> T create(@This String self, Object... args){ return (T)QType.createInstance(QType.create(self), args); } }
Object类扩展
package Qtjambi.extensions.java.lang.Object; import io.qt.core.*; import manifold.ext.rt.api.Extension; import manifold.ext.rt.api.This; import java.lang.Object; @Extension public class ObjectExtensions { public static QVariant toVariant(@This Object self){ return QVariant.fromValue(self); } public static Boolean toBoolean(@This Object self){ if (self instanceof String) return Boolean.parseBoolean((String)self); else if (self instanceof QVariant) return ((QVariant)self).value(Boolean.class); return self.toVariant().value(Boolean.class); } public static Character toChar(@This Object self){ if (self instanceof String) return ((String)self)[0]; else if (self instanceof QVariant) return ((QVariant)self).value(Character.class); return self.toVariant().value(Character.class); } public static Byte toByte(@This Object self){ if (self instanceof String) return Byte.parseByte((String)self); else if (self instanceof QVariant) return ((QVariant)self).value(Byte.class); return self.toVariant().value(Byte.class); } public static Short toShort(@This Object self){ if (self instanceof String) return Short.parseShort((String)self); else if (self instanceof QVariant) return ((QVariant)self).value(Short.class); return self.toVariant().value(Short.class); } public static Integer toInt(@This Object self){ if (self instanceof String) return Integer.parseInt((String)self); else if (self instanceof QVariant) return ((QVariant)self).value(Integer.class); return self.toVariant().value(Integer.class); } public static Long toLong(@This Object self){ if (self instanceof String) return Long.parseLong((String)self); else if (self instanceof QVariant) return ((QVariant)self).value(Long.class); return self.toVariant().value(Long.class); } public static Float toFloat(@This Object self){ if (self instanceof String) return Float.parseFloat((String)self); else if (self instanceof QVariant) return ((QVariant)self).value(float.class); return self.toVariant().value(Float.class); } public static Double toDouble(@This Object self){ if (self instanceof String) return Double.parseDouble((String)self); else if (self instanceof QVariant) return ((QVariant)self).value(Double.class); return self.toVariant().value(Double.class); } public static <T> T toValue(@This Object self, Class<T> cls){ if (self instanceof QVariant) return ((QVariant)self).value(cls); return self.toVariant().value(cls); } public static boolean isType(@This Object self, QMetaType.Type type){ if (self instanceof QVariant) return ((QVariant)self).metaType().id() == type.value(); return self.toVariant().metaType().id() == type.value(); } }
Character类扩展
package Qtjambi.extensions.java.lang.Character; import manifold.ext.rt.api.Extension; import manifold.ext.rt.api.This; import java.lang.Character; @Extension public class CharacterExtensions { public static boolean isLetterOrDigit(@This Character self) { return Character.isLetterOrDigit(self); } public static boolean isLetter(@This Character self) { return Character.isLetter(self); } public static boolean isDigit(@This Character self) { return Character.isDigit(self); } public static boolean isUpperCase(@This Character self) { return Character.isUpperCase(self); } public static boolean isLowerCase(@This Character self) { return Character.isLowerCase(self); } public static Character toUpperCase(@This Character self) { return Character.toUpperCase(self); } public static Character toLowerCase(@This Character self) { return Character.toLowerCase(self); } }
Integer类扩展
package Qtjambi.extensions.java.lang.Integer; import io.qt.core.QString; import manifold.ext.rt.api.Extension; import manifold.ext.rt.api.This; import java.lang.Integer; @Extension public class IntegerExtensions { public static String toText(@This Integer self, int base) { return QString.number(self, base).toString(); } }
浙公网安备 33010602011771号