Java如何循环,直到变量等于特定类型(String / int)

嗨我正在开发一个小型预订程序,我很高兴知道我是否可以使用Loop来运行,直到变量等于特定类型,特别是String或An Integer。 例如,我在下面有以下内容,我希望用户始终输入一个数字。 如果没有,我是否正确地假设我应该开发一个try / catch等? 问候。 public int SetHouseNo(){ System.out.println(); System.out.print(“Please enter your house number: “); HouseNo=in.nextInt(); return HouseNo; }

自定义ControlsFX通知

我想使用ControlsFX Notifications类,因为JavaFX似乎不提供类似的东西(或者它是什么?)。 对我来说,我希望能够自定义通知的颜色和其他一些样式。 有没有人知道我该怎么做? 编辑: 通过设置Notifications.owner(…) ,通知的样式与我的主应用程序的样式相同, 但它也会在主应用程序中显示,而不是在我的屏幕的右下角。

任何人都知道如何在Android中实现Unfold(这是iphone中的应用程序)的效果?

我该如何实现这种效果? 任何建议对我有帮助:)

序列化循环对象树 – StackOverflowError – 需要自定义序列化代码

我正在制作一个Android应用程序,我有一个双向循环对象树,我需要序列化以填充Sqlite数据库中的blob字段。 但是默认的序列化实现会向我抛出StackOverflowError(底部的堆栈跟踪)。 但是我没有编写自定义java序列化代码的经验来避免这种情况。 我这个线程( 在Java中序列化对象时的StackOverflowError )他谈到了这个问题,但是在我的情况下如何实现它我真的不知道: 可以为这样的列表类定义一个writeObject()方法,当第一个链接被序列化时,只需遍历列表并迭代地序列化每个链接; 这将阻止使用默认的递归机制。 这是我的对象模型(看1 / M,而不是其他标志): 这是我用来将对象模型序列化为字节数组的方法(正确的不那么重要): public byte[] serialize(Object object) { byte[] buf = null; try { ByteArrayOutputStream bos = new ByteArrayOutputStream(); ObjectOutput out = new ObjectOutputStream(bos); out.writeObject(object); out.close(); buf = bos.toByteArray(); } catch (IOException e) { e.printStackTrace(); } return buf; } 自定义序列化function: private void writeObject(java.io.ObjectOutputStream out) throws IOException […]

android中给定语言环境的自定义日期格式

我正在尝试格式化给定语言环境new Locale(“mk”, “MK”)环境的日期new Locale(“mk”, “MK”) 。 区域设置有效,它会正确返回国家/地区名称和语言。 我想使用自定义字符串,在我的情况下是“E,kk:mm”或“EEEE,kk:mm”。 我希望输出为“сабота,12:00”,但我得到的是“7,12:00”。 这是我使用它的方式,我尝试了很多方法,但它们似乎都表现得一样。 SimpleDateFormat sdf = new SimpleDateFormat(“EEEE, kk:mm”, new Locale(“mk”, “MK)); sdf.format(new Date()); // output: 7, 12:30 我试过的另一种方法 Calendar calendar = Calendar.getInstance(new Locale(“mk”, “MK”)); calendar.setTimeInMillis(new Date().getTime()); DateFormat.format(“EEEE, kk:mm”, calendar); // output: Saturday, 12:30 我也尝试使用java.text.DateFormat而不是android类,但没有改变。 手机区域设置设置为英语,但这是本地化的应用程序,我想以固定的区域设置格式显示日期。 关于这个问题,我已经研究了许多SO问题,但我无法找到答案。 我对预定义格式不感兴趣,我想使用自己的格式,我希望为输入语言环境格式化日期/月份名称。

使用@Produces用于不同的方法

我正在学习Jersey webservices并且遇到了@Produces的用法,所以为了理解它,我写了一个这样的小程序: @Path(“users/{username: [a-zA-Z][a-zA-Z_0-9]*}”) public class UserResource { @GET @Produces(“text/plain”) public String getUser(@PathParam(“username”) String userName) { return “Hello ” + userName; } @GET @Produces({“application/xml”, “application/json”}) public String doGetAsXmlOrJson(@PathParam(“username”) String userName) { return “Hello World”; } } 当我将请求作为http://localhost:9998/users/Java传递,并且标题为“Accept:application / json”时,我希望输出为Hello World 。 但不是这样,我将它作为Hello Java 。 我正在使用Chrome浏览器的Postman客户端对此进行测试。 现在如果我删除上面程序中的getUser方法,那么我得到输出为Hello World 。 你能否告诉我为什么即使我设置了Accept标头,请求也不会转到我的doGetAsXmlOrJson方法? 更新:添加更多详细信息 – 使用Jersey文档中提到的以下代码部署该程序: import java.io.IOException; import […]

如何防止Eclipselink使用缓存消耗所有内存?

我的应用程序提取了大量的几何数据。 我使用Eclipselink 2.4.1将数据保存在MySQL数据库中。 应用程序以批处理方式工作,即我收集一组数据,然后保留它,继续下一组,持续等等。 另一个应用程序稍后会读取该数据并对其进行处理,但这个问题仅涉及收集数据的第一个应用程序。 数据收集应用程序运行了一段时间。 我使用一组固定的EntityManagers ,它们在启动时创建并直播,直到应用程序完成。 提取是multithreading的,每个线程有一个EntityManager。 我的问题是无论我如何配置缓存,一段时间后EclipseLink会占用所有内存,过了一会儿我得到一个OutOfMemoryError 。 我使用VisualVM提取我使用Eclipse Memory Analyzer分析的堆转储。 EntityManagerImpl.extendedPersistenceContext.cloneMapping持有可疑数量的内存。 此映射包含对我的几何数据对象的引用。 随着时间的推移,这个映射的大小会达到数百兆字节,这就是造成内存不足错误的原因。 我已经尝试过以下方法: 我通过配置eclipselink.persistence-context.reference-mode=weak使用弱引用。 我已经validation了EntityManagerImpl.extendedPersistenceContext.cloneMapping的类型是IdentityWeakHashMap 。 从关于弱缓存的文档中我可以预期,使用weak模式可以解决问题。 不幸的是,垃圾收集器仍然没有声明条目,我不断出现内存错误。 我试图用eclipselink.cache.shared.default=false完全关闭缓存。 问题依然存在。 有没有人建议这里发生了什么以及如何解决这个问题? 我也愿意接受如何规避问题的建议。

Android NDK使用不同的命名空间调用本机方法

我是JNI编程的新手我可以从不同的JNI命名空间定义中调用本机方法吗? 例如: package com.example.hellojni; public class HelloJni extends Activity { public native int MyMethod(); public native int OtherMethod(); // this works have the namespace package=jniexport interface static {System.loadLibrary(“hello-jni”);} @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); int b = OtherMethod(); //works int a = MyMethod(); //ERROR java.lang.reflect.InvocationTargetException } } ================File.c================ JNIEXPORT int JNICALL Java_Cardioline_HelloJni_MyMethod(JNIEnv *env, jobject […]

没有为jdbc找到合适的驱动程序:mysql netbeans,* .jar包含在库中

我可以在worbanch中执行连接,但是使用相同的用户名和密码无法通过mysql数据库中的应用程序进行连接。 我检查了语法显然似乎是正确的。 我想帮助解决这个问题,因为.jar已经在Java SE项目的库文件夹中了。 打印屏幕: 屏幕1 屏幕2 错误控制台: No suitable driver found for jdbc:mysql://127.0.0.1/sakila

使用Spring Boot和Spring集成与数据库支持的配置

对于spring boot +集成应用程序,我正在尝试从数据库加载配置,允许它通过@Value注释可以访问Spring的Environment和注入,并且可以通过外部化配置覆盖,如弹簧引导参考文档中所述。 外化配置部分 。 我遇到的问题是我的spring Integration XML包含无法解析的${input}属性占位符,因为在 Spring尝试加载XML配置之前 ,我无法加载数据库支持的配置。 应用程序的入口点: @SpringBootApplication public class TestApplication { public static void main(String[] args) { SpringApplication.run(TestApplication.class, args); } } 如何加载数据库配置: @Configuration public class DbPropertiesConfig { @Autowired private org.springframework.core.env.Environment env; @PostConstruct public void initializeDatabasePropertySourceUsage() { MutablePropertySources propertySources = ((ConfigurableEnvironment) env).getPropertySources(); try { // The below code will be replace […]