首页
学习
活动
专区
圈层
工具
发布
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    Java | 字段(Field)

    方法和构造方法声明中的变量,称为参数。 局部变量和参数始终被归类为“变量”(而不是“字段”)。...public static final String CONSTANT_FIELD = "CONSTANT_FIELD:\n这是在 MyField 类中的字符串常量字段。"...如前面示例中的 CONSTANT_FIELD 字段。 静态字段(Static Field):声明为 static 的字段。常量字段和类变量都属于静态字段。...在方法中,可使用一个简单名称来表示其所在类中的字段: public String getName() { return name; } 在这种情况下,name 是简单名称...可使用方法来更改实例变量值: public void setName(String name) { // 可插入用于更改实例变量值的条件判断语句, // 以防实例变量值被意外或非法更改

    3.3K11

    FIELD_OFFSET 宏详解

    那么本文的主角 FIELD_OFFSET 宏闪亮登场了。如果我上来就讲这个宏是干什么用的,大家可能也就一看,顶多自己敲敲代码测试一下,很难理解它到底有什么作用。...FIELD_OFFSET 计算一个结构体成员在结构体内部的字节偏移位置,需要给其传递两个参数,一个是结构体的类型名称,一个是你要计算偏移量的成员名称。怎么理解呢?...接下来我们再来看 FIELD_OFFSET 宏的实现,你会发现原来这么简单啊。...#define FIELD_OFFSET(type, field) ((LONG)(LONG_PTR)&(((type *)0)->field)) 内部实现其实就是将 0 这个地址强制转换为结构体类型...最后总结下,FIELD_OFFSET 宏是为了计算一个结构体成员的精确偏移位置,我们可以利用此宏介绍很多的空间浪费的情况。再实际编写代码过程中,会使代码业务逻辑严谨不易出错。

    52220

    聊聊golang的zap的Field

    encoder的对应方法将Field的key和value添加到encoder中 Equals zap@v1.16.0/zapcore/field.go func (f Field) Equals(other...方法用于将fields添加到core中,core的Field属于全局通用的Field logger zap@v1.16.0/logger.go func (log *Logger) With(fields...= nil { ce.Write(fields...) } } logger的With方法最后是执行core的With,添加的是全局的;而Info之类方法提供的Field参数属于动态的...的AddTo方法根据Field的类型来执行encoder的对应方法将Field的key和value添加到encoder中;logger的With方法最后是执行core的With,添加的是全局的;而Info...之类方法提供的Field参数属于动态的,每条log自己的动态Field,它最后调用的是encoder的EncodeEntry(Entry, []Field)方法 doc zap

    88900
    领券