如何在php中创建不可变对象
当然,下一个示例将不起作用。
final class Beer {
private $volume;
// can it be like
// private final $volume;
// ?
public function __construct($volume)
{
$this->volume = $volume;
print('<h1>Object created.</h1>');
}
}
$instance =
我发现自己对访问修饰符和非访问修饰符的顺序感到困惑。例如
abstract void go()
abstract public void go()
public final void go()
void final go()
final class Test{}
class final Test{}
final abstract class Test{}
abstract final Test{}
我从来不知道正确的顺序是什么,有时我会弄错,因为有太多可能的组合。对于哪一个应该在另一个之前,有明确的指导吗?
对于它们在代码中出现的格式和顺序,有什么描述吗?我正
我正在努力寻找关于如何对class属性的属性进行排序的最佳方法的文档,比如private/protected/public、final、static、type。
我将发布一个示例,以了解我的意思。
class A {
public final static int FOO = 3;
final public static int FOO = 3;
}
好吧,我假设属性类型(int,String,char)在属性名之前。
我真正怀疑的是,当我试图将static、final和v
在我的应用程序中,我有许多swing组件。我应该在我的类中将这些组件变量设为final,然后在构造函数中实例化它们,还是应该直接实例化它们,而不是让它们成为final。
public class MyClass
{
private final JFrame firstFrame;
private final JPanel firstPanel;
private final JButton firstButton;
public MyClass()
{
firstFrame = new JFrame();
firstPa
我想通过标志和其他信息来搜索declared methods。
例如,我想搜索方法public final void ae(StringTokenizer);。
这是一个示例方法,我想如何搜索它:
private CtMethod findMethod(CtClass clazz, int access, String returns, String[] parameters) throws NotFoundException {
/*
returns = null = void, other String for returned class name
我有很强的Java基础,当谈到PHP时,我遇到了一些OOP方面的问题。
请看下面这两门课:
Contacts.php
<?php
public class Contacts {
}
?>
UnitTest.php
<?php
require_once 'PHPUnit/Framework.php';
include 'Contacts.php';
class UnitTest extends PHPUnit_Framework_TestCase {
public functio
这里有一个类,它只包含static方法,所以我称之为助手类,一个例子:
public class FileUtils {
public static String readFileEntry(final Path path, final String entryKey) throws IOException { }
public static String readAndModifyFileEntry(final Path path, final String entryKey, final UnaryOperator<String> operator) thro
问题
为什么某些常量在public修饰符下而另一些private下呢?可以从使用库的应用程序中调用public下的应用程序吗?如果是这样的话,如何从应用程序调用常量,它是这样的吗:CertainLibraryClass.ActivityResultCode.CODE_A
代码
public class CertainLibraryClass {
public class ActivityResultCode {
public static final int CODE_A = 0X02;
public static final int CODE_B =
在浏览时,我发现了一个泛型DAO接口的代码:
public interface GenericDAO<T, ID extends Serializable> {
Class<T> getEntityClass();
T findById(final ID id);
List<T> findAll();
List<T> findByExample(final T exampleInstance);
List<T> findByNamedQuery(
final String
我是Java的初学者,我很难将常量声明为公共的,在一些书中搜索了一段时间之后,我创建了一个非常简单的程序:
package course1;
public class Circle
{
public static void main(String[] args)
{
public static final double QUARTER_VALUE = 0.25;
System.out.println(QUARTER_VALUE);
}
}
我收到以下错误消息:
Exception in thread "main
我知道枚举
enum Year
{
First, Second, Third, Fourth;
}
被转换为
final class Year extends Enum<Year>
{
public static final Year First = new Year();
public static final Year Second = new Year();
public static final Year Third = new Year();
public static final Year Fourt
我可以在Scala中使用private final修饰符做什么?
给定以下代码:
1| class A { def callFoo = foo; private final def foo = "bar of A" }
2| class B extends A { private final def foo = "bar of B"}
3| println((new A()).callFoo)
4| println((new B()).callFoo)
第3行和第4行打印:
1| bar of A
2| bar of A
可以理解为什么第2行不打印bar of
我通常有这样的小类定义,如下所示:
public static class Annotation {
private final String brand;
private final Sentiment sentiment;
public Annotation(String brand, Sentiment sentiment) {
this.brand = brand;
this.sentiment = sentiment;
}
public String brand() {
return this
我找到了一个代码,它声明了如下代码
private final static String API_RTN_SUCCESS = "0";
private final static String API_RTN_ERROR = "1";
public static final String SHARED_PREFERENCE_CONFIG = "shared_preference_config";
public static final String STARTUP_SETTING_KEY = "startup_setting";
所以我正在尝试解析一些内容。它看起来像这样。
## This is a Title ##
- Content will go here, so blah blah blah -
现在我通过php/mysql从一个表中抓取它,并使用preg_match来提取文本,如下所示。
preg_match('/\##(.*?)\##/', $m_data['field'], $mod_title);
preg_match('/\-(.*?)\-/', $m_data['field'], $mod_content);
这可以很好地工作。但是,
在Android设备的遗留代码中,我发现了以下一项艺术(接口的定义):
public interface ErrorIdentifiers {
public static final int SUCCESS = 0;
public static final int NOT_AVAILABLE = 1;
public static final int GENERIC_FAILURE = 2;
public static final int REQUEST_NOT_SUPPORTED = 3;
public static final int REQUEST_
我有以下方法。当方法声明为final时,@EJB为null。为何会这样呢?当我省略final关键字时,它就能工作了。
@Stateless
@TransactionManagement(TransactionManagementType.CONTAINER)
public class TokenService2
{
@EJB
private Configuration configuration;
public final void processAuthentication(String authCode) throws FileNotFoundException,
在我的项目中,没有保存或加载。每次登录都会创建一个新对象。
因此,从技术上讲,每个领域都表现得好像它是暂时的。但如果我也把它们都命名为瞬态的,即
private final Car car = new Car();
(即使每次登录时都会创建包含此字段的对象)
更改为
private transient final Car car = new Car();
这会在内存使用或速度方面对我的项目产生任何积极的影响吗?
当我使用字符串"name“定位我的Fi还原文档时,我总是会得到这个错误。当我使用"user.uid“时,我不明白为什么会发生这种情况,它只是起作用。
实例成员'name‘不能在初始化器中访问。尝试用不同的表达式替换对实例成员的引用。
这是我的密码:
final user = FirebaseAuth.instance.currentUser!;
class Folder extends StatelessWidget {
Folder(this.name, {super.key});
final String name;
final Stream&l
在java中,你可以使用反射来获得一个整数来表示一个类上的所有修饰符。例如:
public final class Foo{}
Foo.getClass().getModifiers();//returns 17 because public=1 and final=16
我的问题是,比较两个类的修饰符的最佳方法是什么?假设我们有另一个类:
private class Bar{}
Bar.getClass().getModifiers();//returns 2 because private=2
现在简单的方法是有一大堆if说modifier.isAbstract,modifier.isPu
我试图从Firestore中检索单个文档,并将其转换为模型的一个对象。
型号:
class User {
final String uid;
final String email;
final String nome;
final String cognome;
final String displayName;
final Ruolo ruolo;
String idSquadra;
DateTime scadenzaCertificato;
User(
{this.uid,
this.ruolo,
this.emai
我正在使用JDK9的jshell。
我刚刚创建了最后一个变量并给它分配了一个值。在下一行中,我修改了值。令我惊讶的是,在修改最终变量时没有出现错误。
下面是代码片段:
jshell> final int r = 0;
| Warning:
| Modifier 'final' not permitted in top-level declarations, ignored
| final int r = 0;
| ^---^
r ==> 0
jshell> r = 1;
r ==> 1
jshell> System.out.print
class Test {
public static void main(String[] args) {
private int x = 10;
public int y = 20;
protected int z = 30;
static int w = 40;
final int i = 50;
}
}
这里仅适用的修饰符是最终的;对于其他修饰符,程序会给出编译器错误。为什么会这样呢?请详细解释。
最近,我一直在读关于序列化的文章,一切看起来都很容易理解。带有final关键字的值被序列化,static值不被序列化,在static transient中,transient被忽略,以此类推。我几乎读过所有的东西,但我有一个问题,我找不到答案,谷歌和Stack Overflow都找不到答案:
当数据为static final时会发生什么?他们中的哪一个克服了另一个?例如:
interface Foo{
int value = 10; // by default it is public static final
}
如果我在我的任何类中实现该接口的值,它将如何被序列化?它将被视为fin