How to make an Android device vibrate? with different frequency?

Try: import android.os.Vibrator; … Vibrator v = (Vibrator) getSystemService(Context.VIBRATOR_SERVICE); // Vibrate for 500 milliseconds if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) { v.vibrate(VibrationEffect.createOneShot(500, VibrationEffect.DEFAULT_AMPLITUDE)); } else { //deprecated in API 26 v.vibrate(500); } Note: Don’t forget to include permission in AndroidManifest.xml file: <uses-permission android:name=”android.permission.VIBRATE”/>

What are enums and why are they useful?

You should always use enums when a variable (especially a method parameter) can only take one out of a small set of possible values. Examples would be things like type constants (contract status: “permanent”, “temp”, “apprentice”), or flags (“execute now”, “defer execution”). If you use enums instead of integers (or String codes), you increase compile-time … Read more

Why should Java 8’s Optional not be used in arguments

Oh, those coding styles are to be taken with a bit of salt. (+) Passing an Optional result to another method, without any semantic analysis; leaving that to the method, is quite alright. (-) Using Optional parameters causing conditional logic inside the methods is literally contra-productive. (-) Needing to pack an argument in an Optional, … Read more

How to nicely format floating numbers to string without unnecessary decimal 0’s

If the idea is to print integers stored as doubles as if they are integers, and otherwise print the doubles with the minimum necessary precision: public static String fmt(double d) { if(d == (long) d) return String.format(“%d”,(long)d); else return String.format(“%s”,d); } Produces: 232 0.18 1237875192 4.58 0 1.2345 And does not rely on string manipulation.

Can enums be subclassed to add new elements?

No, you can’t do this in Java. Aside from anything else, d would then presumably be an instance of A (given the normal idea of “extends”), but users who only knew about A wouldn’t know about it – which defeats the point of an enum being a well-known set of values. If you could tell … Read more

Converting between java.time.LocalDateTime and java.util.Date

Short answer: Date in = new Date(); LocalDateTime ldt = LocalDateTime.ofInstant(in.toInstant(), ZoneId.systemDefault()); Date out = Date.from(ldt.atZone(ZoneId.systemDefault()).toInstant()); Explanation: (based on this question about LocalDate) Despite its name, java.util.Date represents an instant on the time-line, not a “date”. The actual data stored within the object is a long count of milliseconds since 1970-01-01T00:00Z (midnight at the start … Read more

How to convert Java String into byte[]?

The object your method decompressGZIP() needs is a byte[]. So the basic, technical answer to the question you have asked is: byte[] b = string.getBytes(); byte[] b = string.getBytes(Charset.forName(“UTF-8”)); byte[] b = string.getBytes(StandardCharsets.UTF_8); // Java 7+ only However the problem you appear to be wrestling with is that this doesn’t display very well. Calling toString() … Read more

Where is JAVA_HOME on macOS Mojave (10.14) to Lion (10.7)?

With the Java optional package or Oracle JDK installed, adding one of the following lines to your ~/.bash_profile file will set the environment variable accordingly. export JAVA_HOME=”$(/usr/libexec/java_home -v 1.6)” or export JAVA_HOME=”$(/usr/libexec/java_home -v 1.7)” or export JAVA_HOME=”$(/usr/libexec/java_home -v 1.8)” or simply export JAVA_HOME=”$(/usr/libexec/java_home)” Note: If you installed openjdk on mac using brew, run sudo ln … Read more