final

final keyword in method parameters

Hi, I often encounter methods which look like the following: public void foo(final String a, final int[] b, final Object1 c){ } What happens if this method is called without passing it final parameters. i.e. an Object1 that is later changed (so is not declared as final) can be passed to this method just fine ...

Does a passed final variable in Java stay final on the other side?

I've just come across some code that's confusing me slightly; there are really 2 variations that I'd like to clarify. Example 1: public String getFilepath(){ final File file = new File(this.folder, this.filename); return file.getAbsolutePath(); } What would be the purpose of declaring file "final"? Since Java prim...

if a php class is defined as final, does it make sense to define it's methods as final as well?

I have a class defined as final. Does it make sense to define the methods as final as well? I know that since the class itself is final it can't be extended, which would make the method final declarations redundant, but I want to work up documentation on the class and others, and thought it'd be help since the final property of the metho...

Reusing constructors with final instance fields

Let's suppose that I have the following class which tries to be immutable public class Computation { private final Operation operation; private final double epsilon; public Computation(Operation operation) { this.operation = operation; //Default value epsilon = 0.01; } public Computat...

Java - Can final variables be initialized in static initialization block?

Upto my theoretical knowledge, static variables can be initialized in static initialization block. But when I tried to implement the above (static variables that are final too), I got an error as showing in the below snapshot. Sanpshot can directly be accessed at http://i49.tinypic.com/5vxfn4.jpg (in case it is not clear in the below s...

Is there any way to prevent replacement of JavaScript object properties?

I would like to make an object's structure immutable, preventing its properties from being subsequently replaced. The properties need to be readable, however. Is this possible? I'm sure there are no language features (along the lines of final in Java and sealed in C#) to support this but wondered whether there might be another mechanism...

Are final static variables thread safe in Java?

I've read around quite a bit but haven't found a definitive answer. I have a class that looks like this: public class Foo() { private static final HashMap<String, HashMap> sharedData; private final HashMap myRefOfInnerHashMap; static { // time-consuming initialization of sharedData f...

How should I declare a constant set visible for every instance of the class?

I would like to have a constant set in my class which would be visible for all instances of the class. First, I do not know if I need to declare it as "static". As far as I understand any changes of a static field (done by one of the instances) will be seen by other instances (so static variable is not bound to a specific instance). Mor...

What Collections.unmodifiableSet does?

Here I can see that "Collections.unmodifiableSet" returns an unmodifiable view of the specified set. But I do not understand why we cannot just use final modifier to create an unmodifiable set. In my understanding final declare a constant (i.e. something that cannot be modified). So, if a set is declared as a constant it cannot be modif...

How to prevent a function from being overridden in python

Is there a way to make a class function unoverriddable? something like java's final keyword. i.e, any overriding class cannot override that method. ...

Why can final object be modified?

I came across the following code in a code base I am working on: public final class ConfigurationService { private static final ConfigurationService INSTANCE = new ConfigurationService(); private List providers; private ConfigurationService() { providers = new ArrayList(); } public static void addProvider(C...

Scala and the Java Memory Model

The Java Memory Model (since 1.5) treats final fields differently to non-final fields. In particular, provided the this reference doesn't escape during construction, writes to final fields in the constructor are guaranteed to be visible on other threads even if the object is made available to the other thread via a data race. (Writes to ...

Why my inner class DO see a NON static variable?

Earlier I had a problem when an inner anonymous class did not see a field of the "outer" class. I needed to make a final variable to make it visible to the inner class. Now I have an opposite situation. In the "outer" class "ClientListener" I use an inner class "Thread" and the "Thread" class I have the "run" method and does see the "ear...

Are there any reasons to make all fields and variables final?

In my current project I noticed that all class fields and variable inside methods are declared with final modifier whenever it's possible. Just like here: private final XMLStreamWriter _xmlStreamWriter; private final Marshaller _marshaller; private final OutputStream _documentStream; private final OutputStream _stylesStream; private ...

Final enum in Thread's run() method

Hi, Why is the Elvis elvis definition has to be final to be used inside the Thread run() method? Elvis elvis = Elvis.INSTANCE; // ----> should be final Elvis elvis = Elvis.INSTANCE elvis.sing(4); Thread t1 = new Thread( new Runnable() { @Override public void run() { elvis.sing(6); // --------> elvis has to be final to c...

How to avoid code repetition initializing final properties?

public class Code{ //many properties //... final String NEWLINE;// ohh a final property! void creation() //this method is for avoid repetition of code { //final initialization can't be put here =( Source= new StringBuffer(); //many other commons new's .. //... } Code() { NEWLINE = System.getProperty("line...

Assigning a default value to a final variable in case of an exception in Java

Why won't Java let me assign a value to a final variable in a catch block after setting the value in the try block, even if it is not possible for the final value to be written in case of an exception. Here is an example that demonstrates the problem: public class FooBar { private final int foo; private FooBar() { try...

Java: startingPath as "public static final" exception

[Updated, sorry about the change but now to the real problem] I cannot include try-catch-loop there for the exception from the method getCanonicalPath(). I tried to solve the problem earlier with method and then declaring the value there. The problem is that it is Final, I am unable to change it. So how to have startingPath as "public st...

Java: Initializing a public static field in superclass that needs a different value in every subclass instance

Good evening, I am developing a set of Java classes so that a container class Box contains a List of a contained class Widget. A Widget needs to be able to specify relationships with other Widgets. I figured a good way to do this would be to do something like this: public abstract class Widget { public static class WidgetID { ...

Getting value of public static final field/property of a class in Java via reflection

Say I have a class: public class R { public static final int _1st = 0x334455; } How can I get the value of the field/property "_1st" via reflection? ...